본문 바로가기

Algorithm/Math

(C++) - 백준(BOJ) 10972번 : 다음 수열

반응형

www.acmicpc.net/problem/10972

 

10972번: 다음 순열

첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다.

www.acmicpc.net

조합문제였습니다.

next_permutation은 다음 수열이 있다면 다음 수열로 바꿔준다음 true를 반환합니다. 만약 현재 vector가 마지막 수열이라면 false를 반환합니다.

풀이방법

 next_permutation이 false라면 -1를 출력해줍니다.

 그 외에는 다음 수열을 출력해줍니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin >> n;
    vector <int> v(n);
    for(auto &n : v) cin >> n;
    if(!next_permutation(v.begin(),v.end())) cout << -1 << '\n';
    else for(auto &n : v) cout << n << ' ';
}