BOJ : 로또 [6603]
1. 문제
독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다.
로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다.
예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])
집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오.
독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다.
로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다.
예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])
집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오.
출처 : https://www.acmicpc.net/problem/6603
2. 아이디어
- combinations 활용
순서대로 나오게 sort 후 combinations
3. 코드
mine
from itertools import combinations
arr = list(map(int, input().split()))
while arr != [0]:
arr = sorted(arr[1:])
for numbers in list(combinations(arr, 6)):
for num in numbers:
print(num, end=' ')
print()
print()
arr = list(map(int, input().split()))
Author And Source
이 문제에 관하여(BOJ : 로또 [6603]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@onejh96__/BOJ로또6603
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- combinations 활용
순서대로 나오게 sort 후 combinations
mine
from itertools import combinations arr = list(map(int, input().split())) while arr != [0]: arr = sorted(arr[1:]) for numbers in list(combinations(arr, 6)): for num in numbers: print(num, end=' ') print() print() arr = list(map(int, input().split()))
Author And Source
이 문제에 관하여(BOJ : 로또 [6603]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@onejh96__/BOJ로또6603저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)