별다른 조건 없이 K개 중에 하나를 N번 선택하는 재귀함수를 작성하는 방법에 대해 배우게 됩니다.
k, n = map(int, input().split())
answer = []
def print_answer():
for elem in answer:
print(elem, end=" ")
print()
def choose(curr_num):
if curr_num == n + 1:
print_answer()
return
for i in range(1, k + 1):
answer.append(i)
choose(curr_num + 1)
answer.pop()
return
choose(1)
🤔
🤔
백트래킹 너무 어렵다...
def 정답 가능성():
if 조건에 안 맞으면:
return False
return True
def 재귀함수(현재 노드):
if 탐색 끝 or 정답 가능성이 있으면:
출력 or 저장
for 모든 자식 노드에 대해:
(if 정답 가능성이 있으면):
자식 노드로 이동 # append()
재귀함수(자식 노드) # 재귀함수(현재 노드 + 1)
부모 노드로 이동 # pop()