


N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.
첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.
간단하게 dfs로 모든 순열을 추출하면 되는 문제.
def dfs(depth):
if depth == n:
print(*ans)
return
for i in range(n):
if num[i] not in ans:
ans.append(num[i])
dfs(depth + 1)
ans.pop()
n = int(input())
num = [i for i in range(1, n + 1)]
ans = []
dfs(0)
Python의 itertools 모듈로도 해결할 수 있다.
from itertools import permutations
https://www.acmicpc.net/problem/10974