<내 코드>
import sys
N, M = map(int, sys.stdin.readline().split())
visited = [0 for _ in range(N)]
arr = []
def dfs(cnt):
if cnt == M:
print(*arr)
return
for i in range(N):
if visited[i] == 0:
arr.append(i+1)
dfs(cnt+1) # 다음 깊이 탐색
visited[i] = 1
arr.pop() # 탐사한 내용 제거
# 시작 탐색 값만 제외시키도록 나머진 초기화
for j in range(i+1, N):
visited[j] = 0
dfs(0)
반응형
'알고리즘 문제풀기 > 백준 - Python' 카테고리의 다른 글
[백준 14889] 스타트와 링크 - Python (브루트포스, 백트래킹) (0) | 2020.11.02 |
---|---|
[백준 14888] 연산자 끼워넣기 - Python (백트래킹, DFS, 브루트포스) (0) | 2020.10.27 |
[백준 15651] N과 M (3) - Python (백트래킹, DFS) (0) | 2020.10.26 |
[백준 15650] N과 M (2) - Python (백트래킹, DFS, 조합) (0) | 2020.10.26 |
[백준 15649] N과 M(1) - Python (백트래킹, DFS, 순열) (0) | 2020.10.26 |