본문 바로가기

Coding test

[백준/6603/파이썬] 로또


소스코드

def dfs(depthidx):
    if depth == 6:
        print(*out)
        return

    for i in range(idx, k):
        out.append(S[i])
        dfs(depth + 1, i + 1)
        out.pop()


while True:
    array = list(map(int, input().split()))
    k = array[0]
    S = array[1:]
    out = []
    dfs(0, 0)
    if k == 0:
        exit()
    print()

알고리즘

사실 이 문제도 combinations를 이용해서 풀면 풀리는 문제인데 공부하는 입장이다보니 dfs를 이용하여 풀었습니다.

dfs를 사용하여 깊이를 1씩 늘려가며 6개가 되면 출력하는 형태로 진행하였습니다. .ez~