https://www.acmicpc.net/problem/6603
6603번: 로또
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로
www.acmicpc.net
문제 접근
조합을 사용해야겠다는 생각이 무조건 들었다.
생각보다 까다로웠던 부분은 입력을 한 줄로 받고, 그중에서 맨 앞의 수를 제외하고는 list 안에 담아야 했다.
1. lotto라는 빈 리스트 생성
2. pop(0)을 통해 맨 앞의 입력 값 k에 저장 후 삭제
3. 0 입력 시 문제 종료 => 탈출 조건
코드
from itertools import combinations
while True:
lotto = list(map(int,input().split()))
k = lotto.pop(0)
if k > 0:
for i in combinations(lotto,6):
print(*list(i))
print()
else:
break
회고
너무 금방 풀었다. 다른 방식의 풀이법을 찾아봐야겠다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준]2805 나무자르기(Python) (0) | 2024.01.06 |
---|---|
[백준]9663 N-Queen(Python) (1) | 2024.01.05 |
[백준]9095 1, 2, 3 더하기(Python) (0) | 2024.01.05 |
[백준]1182 부분수열의 합(Python) (2) | 2024.01.03 |
[백준]2502 떡 먹는 호랑이(Python) (2) | 2023.12.31 |