반응형

https://www.acmicpc.net/problem/10974

 

10974번: 모든 순열

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

www.acmicpc.net

 

#include <iostream>
#include <algorithm>
int n, a[8], b[8], v[8] = { 0 };
void fun(int cnt) {
	if (cnt == n) {
		for (int i = 0; i < n; i++) printf("%d ", b[i]);
		printf("\n");
		return;
	}
	for (int i = 0; i < n; i++) {
		if (v[i]) continue;
		v[i] = 1;
		b[cnt] = a[i];
		fun(cnt + 1);
		v[i] = 0;
	}
}

int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; i++) a[i] = i + 1;
	fun(0);
}
반응형

'Algorithm' 카테고리의 다른 글

백준 10971 : 외판원 순회 2  (0) 2021.11.11
백준 10819 : 차이를 최대로  (0) 2021.11.11
백준 10972 : 다음 순열  (0) 2021.11.11
백준 1476 : 날짜 계산  (0) 2021.11.11
백준 17281 : ⚾  (0) 2021.11.11

+ Recent posts