[Python] 알고리즘/Silver

[6603] 로또 (Python)

-Becca- 2022. 4. 4. 13:19

[문제]

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

 

6603번: 로또

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

www.acmicpc.net


알고리즘 분류는 수학, 조합론, 백트래킹, 재귀 입니다.

저는 python의 combinations를 이용하여 풀었습니다.


[코드]

from shlex import join
import sys
from itertools import combinations

comb = list()
while True:
    S = list(map(int, sys.stdin.readline().split()))
    if S[0] == 0:
        break
    
    comb.append(list(combinations(S[1:], 6)))
    
for i in range(len(comb)):
    for j in comb[i]:
        print(' '.join([str(a) for a in j]))
    print()