C++ 백준 10974. 모든 순열

0

C++ 코딩테스트

목록 보기
8/30

문제

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.

출력

첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.

예제 입력 1

3

예제 출력 1

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

풀이

#include<bits/stdc++.h>
using namespace std;
vector<int> num;
int a;
int main(){
	cin >> a;
	for(int i = 1; i<=a; i++) num.push_back(i); // 벡터 형태로 값을 저장
	do{
		for(auto i : num){
			cout << i << ' ';
		}
		cout << '\n';
	}
	while(next_permutation(num.begin(), num.end()));  // next_permutation 함수를 이용하여 모든 순열을 출력한다.
	return 0;
}

0개의 댓글