문제 링크 : https://www.acmicpc.net/problem/15649
from itertools import permutation 을 활용하면 쉽게 풀릴 것을 알고 있었지만, 백트래킹 연습을 위해 백트래킹으로 풀어보았다.
trace 라는 리스트에 발자취를 남기며 백트래킹을 진행했다.
import sys
N, M = map(int, sys.stdin.readline().split())
num = [i for i in range(1, N + 1)]
def dfs(trace):
if len(trace) == M:
for t in trace:
print(t, end=' ')
print()
return
for i in range(1, N + 1):
if not i in trace:
trace.append(i)
dfs(trace)
trace.pop()
dfs([])
from itertools import permutations
import sys
N, M = map(int, sys.stdin.readline().split())
permu = list(permutations(range(1, N+1), M))
for p in permu:
for x in p:
print(x, end=' ')
print()