6603

이연희·2022년 6월 9일
0

Algorithm

목록 보기
2/9
import sys
input=sys.stdin.readline
def dfs(start,depth):
    if depth==6:
        print(' '.join(map(str,combi)))
        return
    for i in range(start,len(s)):
        combi[depth]=s[i]
        dfs(i+1,depth+1)

k=-1
combi=[0 for i in range(6)]
while k!=0:
    lst=list(map(int,input().split()))
    k=lst[0]
    s=lst[1:]
    dfs(0,0)
    print()

depth가 6이 되면 출력을 하고 return 하여 이전 함수로 돌아간다.
lst가 8,1,2,3,5,8,13,21,34라고 할 때,
combi에는 가장 처음 1,2,3,5,8,13이 담긴다.
이후 depth가 6이면 1 2 3 5 8 13을 출력하고 이전 함수로 되돌아간다.
for의 i가 증가한 상태이기 때문에 1 2 3 5 8 21이 담긴다.

6603

profile
공부기록

0개의 댓글