[핵심]
메모리를 생각하는 것이 핵심이다. 내장된 모듈을 활용하여 순열이나 조합을 리스트에 저장하면
대부분의 경우 메모리 초과가 된다. 다음와 같이 재귀함수를 활용하여 바로바로 출력을 하는 연습을 하자! (메모리가 작을 것이다.)
import sys
N,M = map(int,sys.stdin.readline().split())
hi=[False]*N
test = []
def solve(depth,idx,N,M):
if depth == M:
print(test)
for i in range(idx,N):
if hi[i] == 0:
test.append(i+1)
hi[i] = True
solve(depth+1,i+1,N,M)
hi[i] = False
test.pop()
solve(0,0,N,M)
'Data Science > 알고리즘 공부' 카테고리의 다른 글
[백준][파이썬] 1874번: 스택 수열 (0) | 2020.03.11 |
---|---|
[백준][파이썬] 1593 문자 해독 (0) | 2020.03.10 |
[백준][파이썬] #10870 피보나치수 5 (재귀함수 활용) (0) | 2020.03.10 |
[백준] #1931 회의실 배정 (0) | 2020.03.10 |
[백준] #2869번 달팽이는 올라가고 싶다 (0) | 2020.03.10 |
댓글