문제
풀이
입력에서 주어지는 N과 숫자의 구성이 같으면서 더 큰수 라고 한다면 순열 조합 문제라는 것을 떠올리실 수 있습니다.
숫자 구성을 모두 사용해야 하므로 이 문제는 순열입니다.
정답이 반드시 있는 경우만 입력으로 주어지므로 54321 처럼 다음 순열이 없는 경우는 없습니다.
따라서 예외 처리 없이 다음 순열을 구해주시기만 하면 됩니다.
C++에는 algorithm 라이브러리에서 next_permutation 메소드를 지원해주기 때문에 편하게 해결할 수 있었습니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string N;
void func() {
next_permutation(N.begin(), N.end());
cout << N << '\n';
}
void input() {
cin >> N;
}
int main() {
cin.tie(NULL); cout.tie(NULL);
ios::sync_with_stdio(false);
input();
func();
return 0;
}
|
cs |
'대회 > elice' 카테고리의 다른 글
엘리스 코드 챌린지 Day 6 빨간 선과 파란 선 (0) | 2024.07.23 |
---|---|
엘리스 코드 챌린지 Day 5 수열 복원 (0) | 2024.07.22 |
엘리스 코드 챌린지 Day 4 트리 위의 게임 (0) | 2024.07.22 |
엘리스 코드 챌린지 Day 3 문자열 압축 해제 (4) | 2024.07.22 |
엘리스 코드 챌린지 Day 2 정리 정돈을 좋아하는 k씨 (0) | 2024.07.22 |