본문 바로가기
Algorithm/baekjoon

[파이썬]baekjoon 6603: 로또

by 갈잃자 2022. 12. 17.

https://www.acmicpc.net/problem/6603

 

6603번: 로또

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로

www.acmicpc.net

재귀 이용해서 풀었다.

 

재귀를 진행하며, 6개의 숫자가 채워질 때 마다, 출력을 하였고, 조합의 개념을 넣기 위해 인자에 index값을 변환시켜 주었다.

while 1:

    arr = list(map(int,input().split()))
    k=arr[0]
    arr=arr[1:]
    path = [0]*6
    def abc(level, start):
        if level == 6:
            print(*path)
            return

        for i in range(start,k):
            path[level] = arr[i]
            abc(level+1, i+1)
            path[level] = 0

    abc(0,0)
    print("")
    if k ==0:
        break

댓글