본문 바로가기

문과 코린이의, [C. C++] 기록/C++ 백준 문제풀이

[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 모든 순열 (10974)

반응형

[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 모든 순열 (10974)

[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 모든 순열 (10974)

 


 

 

10974번: 모든 순열

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

www.acmicpc.net

[ 문제 ]

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

[ 입력 ]

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

[ 출력 ]

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


[ 코드 ]

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;


int main() {
	int N;
	cin >> N;

	vector <int> a(N);
	for (int i = 0; i < N; i++)
	{
		a[i] = i+1;
	}

	do
	{
		// 최초 실행
		for (int i = 0; i < N; i++)
		{
			cout << a[i] << ' ';
		}
		cout << '\n';

	} while (next_permutation(a.begin(),a.end())); // 조건식 : true이면 재실행

	return 0;
}
반응형