Algorithm/brute force
[백준] C++ 알고리즘 10974번 - 모든 순열문제
낭강
2021. 6. 2. 18:20
문제
https://www.acmicpc.net/problem/10974
10974번: 모든 순열
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
www.acmicpc.net
소스코드
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
vector<int> a;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; i++) a.push_back(i + 1);
do {
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << "\n";
} while (next_permutation(a.begin(), a.end()));
}
해설
do while 사용이유 - 처음 순열의 첫 순열을 구하지 못한상태로 다음 순열은 구할 수 없으니
next_permutation - 순열을 구하고 싶은 순열 1 2 3 4 에 대해서 그 다음 순열을 구해줌 1 2 4 3
헤더파일 - algorithm을 사용