Algorithm/noj.am
[Python] 백준 15649번 - N과 M (1)
SweetDev
2022. 6. 30. 17:03
def permute(N, M):
elements = [i for i in range(1, N+1)]
results = []
prev_elements = []
def dfs(elements):
if len(elements) == N-M:
results.append(prev_elements[:])
for e in elements:
next_elements = elements[:]
next_elements.remove(e)
prev_elements.append(e)
dfs(next_elements)
prev_elements.pop()
dfs(elements)
return results
N, M = map(int, input().split())
for i in permute(N, M):
print(*i)
기억할거:
백트래킹 문제는 dfs의 일종이라서 재귀로 구현해야 함.
#순열 #백트래킹 #DFS #nPr
