Algorithm Problems

[백준] [Python] 백트래킹

WakaraNai 2021. 4. 29. 22:22
728x90
반응형

import sys

n,m = map(int,sys.stdin.readline().split())
arr = [0]*9
visit = [0]*9
def backtrack(k):
    if (k == m): #m개까지 왔다
        for i in range(m):
            print(arr[i], end=" ")
        print()
        return
    
    for i in range(1, n+1):
        if visit[i] == 0: # i가 처음이라면 
            arr[k] = i # k번째 수를 i로 정함
            visit[i] = 1 #방문 표시
            backtrack(k+1) # 다음 단계 진입
            
            visit[i] = 0 # k번째 수가 i일 때의 모든 경우를 확인했으니
            # i를 다시 사용하지 않음으로 표시
            
backtrack(0) #root부터 시작
728x90
반응형