728x90

www.acmicpc.net/problem/10974

 

10974번: 모든 순열

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

www.acmicpc.net

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

int n;

void permutation(int num, vector<bool> visited, vector<int> result) {
	if (num == n) {
		for (int i = 0; i < n; i++) {
			cout << result[i] << " ";
		}
		cout << '\n';
		return;
	}
	for (int i = 0; i < n; i++) {
		if (!visited[i]) {
			result[num] = i + 1;
			visited[i] = true;
			permutation(num + 1, visited, result);
			visited[i] = false;
		}
	}
}

int main() {
	cin.tie(NULL);
	ios::sync_with_stdio(false);
	cin >> n;
	permutation(0, vector<bool>(n, false), vector<int>(n));
	return 0;
}
728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 1107번 리모컨  (0) 2021.01.11
[백준] 1013번 Contact  (0) 2021.01.08
[백준] 1992번 쿼드트리  (0) 2021.01.05
[백준] 1074번 Z  (0) 2021.01.04
[백준] 1004번 어린 왕자  (0) 2021.01.03

+ Recent posts