티스토리 뷰
Problem
문제링크: www.acmicpc.net/problem/6603
6603번: 로또
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로
www.acmicpc.net
알고리즘 분류: 수학, 조합론, 백트래킹, 재귀
Solution
이 문제는 하나의 집합(N) 속에서 6개의 숫자로 이루어진 모든 조합을 구하는 문제이다.
python 의 "itertools" 라이브러리에서 지원하는 *combinations 함수를 사용하면 쉽게 구할 수 있다.
Code
import itertools
while 1:
N = list(map(int, input().split()))
if N[0] == 0: break # N에 0이 입력될때까지 반복
del N[0] # N에 처음 값(k)을 삭제
for i in itertools.combinations(N, 6): #combinations함수로 만들수 있는 조합을 만든 후
print(' '.join(map(str, i))) #문자열 형식으로 출력한다.
print()
*combinations 함수는 리스트의 조합의 결과를 반환한다.
'algorithm > 백준' 카테고리의 다른 글
[C++]백준 1187번: 최소 스패닝 트리 (0) | 2021.06.06 |
---|---|
[python]백준 2231번: 분해합 (0) | 2021.05.02 |
[python] 백준 1002번: 터렛 (0) | 2021.05.01 |
[python] 백준 1001번: A-B (0) | 2021.05.01 |
[python] 백준 1000번: A+B (0) | 2021.05.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 꿀따기
- HackCTF
- 👼
- 스택
- 직업군 추천
- 쇠막대기
- boj
- 21758
- 카카오 2021 블라인드 테스트
- math
- 파이썬
- 더하기
- 1
- 괄호
- openCV
- 2
- web
- programmers
- 4
- 프로그레머스
- 나머지
- python
- 7567
- 피보나치
- c++
- 넓이
- 백준
- FIBO
- 다익스트라
- forensic
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함