알고리즘/백준
[Silver III] 모든 순열 - 10974 (python)
KimMinGyun
2024. 7. 1. 23:51
백트래킹, 브루트포스 알고리즘
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.
첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.
코드
def dfs(a, c):
if c == n:
print(*a)
return
for i in range(n):
if vis[i] == 0:
vis[i] = 1
dfs(a + [arr[i]], c+1)
vis[i] = 0
n = int(input())
arr = [i for i in range(1, n+1)]
vis = [0]*n
ans = []
dfs([], 0)