https://www.acmicpc.net/problem/6603
6603번: 로또
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로
www.acmicpc.net
'''
6603번: 로또 / silver 2 / 조합
'''
import sys
import itertools
input = sys.stdin.readline
while True:
lotto = list(map(int, input().split()))
if lotto[0] == 0:
break
case = lotto[1:len(lotto)]
case.sort()
S = list(itertools.combinations(case, 6))
for i in S:
for j in i:
print(j, end=' ')
print()
print()
출력하는 케이스들이 오름차순으로 정렬되어 있어야 함
해결 방안
1. 케이스 리스트를 오름차순으로 정렬한다.
2. itertools / combinations 조합 사용해서 S 리스트를 만든다.
이렇게 하면, 백트래킹을 하지 않아도 손쉽게 오름차순 리스트를 만들 수 있다.
'백준 문제풀이' 카테고리의 다른 글
3036번: 링 / silver 4 / 최대공약수 (0) | 2023.03.30 |
---|---|
11729번: 하노이 탑 이동 순서 / silver 1 / 재귀 (0) | 2023.03.28 |
10610번: 30 / silver 4 / 정렬, 수학 (0) | 2023.03.25 |
2217번: 로프 / silver 4 / 그리디, 정렬 (0) | 2023.03.24 |
1158번: 요세푸스 문제 / silver 4 / 큐 (0) | 2023.03.23 |