백준 문제 풀이
[백준] 15560 "N과 M (2)" -python
chaNsoo
2023. 12. 29. 09:38
알고리즘
백트래킹을 통해 구현한다.
소스 코드
# N과 M 2
import sys
n, m = map(int, sys.stdin.readline().split())
arr = [0] * m # 수열 저장
isused = [False] * (n + 1)
s = set()
def func(k):
if k == m:
s.add(tuple(sorted(arr)))
return
for i in range(1, n + 1):
if not isused[i]:
arr[k] = i
isused[i] = True
func(k+1)
isused[i] = False
func(0)
for i in sorted(list(s)):
print(*i)