코딩테스트
[Python] 로또 - 백준
#CJE
2023. 5. 8. 10:12
해당 글은 백준 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()