백준 algorithm

백준 10972 - 다음 순열

cosmohoo 2020. 6. 5. 22:12
반응형

문제 설명

 

 

 

=> STL의 Algorithm 헤더에는 next_permutation과 prev_permutation 함수가 있습니다. (Library)

=> 해당 함수를 통해 구현할 수 있는 간단한 문제입니다.

=> 시간이 될 때 직접 구현해보는 방향으로 다시 풀어보겠습니다. 

 

 

 

=> 해당 함수는 vector든, 일반 배열이든 해당 배열의 처음과 끝 부분을 매개변수로 주면 그다음 함수가 있을 경우, true를 return 하고, 아닐 경우 false를 return 합니다. 

=> 또한 해당 배열을 다음 배열로 미리 바꾸어주는 동작을 합니다. 

 

 

함수의 원형

 

 

 

 

 

<code>

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


using namespace std;


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    vector<int> arr;
       int n;
       cin >> n;
       
       for(int i = 0; i < n; i++){
           int tmp;
           cin >> tmp;
           arr.push_back(tmp);
       }
       
       
    if(next_permutation(arr.begin(), arr.end()))
    {
        for(int i = 0; i < n; i++)
        {
            cout << arr[i]<<" ";
        }
    }
    else{
        cout << -1<<"\n";
    }
    
   
    return 0;
}

 

 

 

 

 

실행화면

 

 

반응형