영벨롭 개발 일지

[백준 BOJ][C++]10972번 다음 순열 풀이: std::next_permutation() 본문

알고리즘 문제 풀이/BOJ

[백준 BOJ][C++]10972번 다음 순열 풀이: std::next_permutation()

영벨롭 2022. 3. 31. 15:43

https://www.acmicpc.net/problem/10972

 

10972번: 다음 순열

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

www.acmicpc.net

 

 이 문제는 c++ STL next_permutation을 사용하면 쉽게 해결할 수 있습니다. 

 

 next_permutation 사용법 -> https://iridescent-zeal.tistory.com/97

 

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

using namespace std;

int main(void) {
	
	vector<int> arr;
	int N;

	cin >> N;

	for (int i = 0; i < N; i++) {
		int x;
		cin >> x;
		arr.push_back(x);
	}

	if (next_permutation(arr.begin(), arr.end())) {
		for (auto element : arr)
			cout << element << " ";
		cout << endl;
	}
	else {
		cout << -1;
	}

	return 0;
}
반응형