문제
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.
출력
첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.
풀이
next_permutation 함수를 이용하여 모든 순열을 출력하면 되는 문제이다.
코드
더보기
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> v;
for (int i = 1; i <= n; i++)
v.push_back(i);
do {
for (int i = 0; i < n; i++)
printf("%d ", v[i]);
printf("\n");
} while (next_permutation(v.begin(), v.end()));
return 0;
}
'Old > 백준' 카테고리의 다른 글
백준 2167번 2차원 배열의 합 // C++ (0) | 2020.03.10 |
---|---|
백준 1182번 부분수열의 합 // C++ (0) | 2020.03.05 |
백준 10973번 이전 순열 // C++ (0) | 2020.03.05 |
백준 10972번 다음 순열 // C++ (0) | 2020.03.05 |
백준 10971번 외판원 순회(2) // C++ (0) | 2020.03.05 |