코딩하는 해맑은 거북이

[Python] 로또 - 백준 본문

코딩테스트

[Python] 로또 - 백준

#CJE 2023. 5. 8.
해당 글은 백준 6603번 문제 '로또'를 다룬다.

문제

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

 

6603번: 로또

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

www.acmicpc.net

 

설명

해당 문제는 itertools 라이브러리에 combinations 함수를 사용하면 쉽게 풀 수 있다.

한 줄씩 입력받고(line), 가장 첫번째 값은 k이므로 pop(0)을 통해 따로 빼두고, while문을 종료할 때만 사용하였다.

그리고 combinations 함수를 통해 S 중에 6개를 뽑는 경우의 모든 리스트를 뽑아두고, 이를 한 줄씩 출력해주면 된다.

 

 

코드

from itertools import combinations

while True:
    line = list(map(int, input().split()))
    k = line.pop(0)
    if k == 0:
        break
    combi = list(combinations(line, 6))
    for i in range(len(combi)):
        combi_new = [str(s) for s in combi[i]]
        print(' '.join(combi_new))
    print()

     

 

 

Comments