백트래킹, 브루트포스 알고리즘
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)
'알고리즘 > 백준' 카테고리의 다른 글
[Silver III] 근손실 - 18429 (python) (0) | 2024.07.02 |
---|---|
[Silver III] 로마 숫자 만들기 - 16922 (python) (0) | 2024.07.02 |
[Silver III] 한국이 그리울 땐 서버에 접속하지 - 9996 (python) (0) | 2024.07.01 |
[Silver III] 괄호 끼워넣기 - 11899 (python) (0) | 2024.07.01 |
[Silver IV] 요세푸스 문제 - 1158 (python) (0) | 2024.07.01 |