백준[10972] - 다음 순열

문제

백준 10972 문제 보기

접근 방법

주어진 순열에서 바로 다음 순열을 구하는 문제이다. stl 안에 있는 next_permutation 함수를 사용하면 쉽게 해결할 수 있다. stl을 사용하지 않는다면 입력 받은 순열에서 자리 별로 대소관계를 비교해서 문제를 해결할 수 있다.

코드

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int n;
vector<int> a(n);

int main() {
    cin >> n;

    for (int i = 0; i < n; i ++) {
        cin >> a[i];
    }
    if (next_permutation(a.begin(),a.end())) {
        for (int i = 0; i < n; i ++) {
            cout << a[i] << ' ';
        }
    } else {
        cout << "-1";
    }
    cout << '\n';
    return 0;
}
Share