Koala - 10기/코딩테스트 준비 스터디
[백준/C++] 10974번 모든 순열
_dudu
2023. 3. 10. 18:04
풀이
순열을 사용한 완전탐색 기법 이용
순환 첫번째 값을 1~n까지 진행하여 모든 순열을 표시해주면 되는데
algorithm헤더의 next_permutation을 이용하여 편리하게 모든 순열을 구할 수 있었다.
vector에 1~n까지 차례로 값을 넣어주고 next_permutation을 이용해 순열을 구하는 코드이다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
vector<int> p(n);
for (int i = 1; i <= n; i++)
p[i - 1] = i;
do {
for (auto a : p)
cout << a << ' ';
cout << '\n';
} while (next_permutation(p.begin(), p.end()));
return 0;
}
https://www.acmicpc.net/problem/10974
10974번: 모든 순열
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
www.acmicpc.net