Algorithm/BOJ
[백준/15649] N과 M (1) (with 파이썬)
Potato potage
2022. 12. 26. 12:43
반응형
✔ 문제
✔ 풀이
🌱 itertools 없이 풀기 (재귀 사용)
import sys
input = sys.stdin.readline
def perm(arr, n):
res = []
if n == 0:
return [[]]
for i in range(len(arr)):
x = arr[i]
for j in perm(arr[:i] + arr[i+1:], n-1):
res.append([x] + j)
return res
n, m = map(int, input().split())
arr = [i for i in range(1, n+1)]
ans = perm(arr, m)
for i in ans:
print(*i)
⭐ itertools 사용
from itertools import permutations
n, m = map(int, input().split())
numbers = []
for i in range(1, n+1):
numbers.append(i)
perm = list(permutations(numbers, m))
for x in perm:
print(*x)
✔ 후기
사실 itertools 모듈 사용해서 푸는 방법이 훨!씬! 간단하고 이해도 빠른데
나중에 모듈 없이 사용할 수도 있으니까 해당 방법으로도 풀어봤다.
근데 재귀가 이루어지는 과정이 잘 이해가 안가서 손으로 디버깅 해봤다 _¢(T-T*)
반응형