문제 출처 : www.acmicpc.net/problem/15650
문제 해석 : 1~N의 수 중 중복없이 오름차순으로 M개의 수를 선택하는 경우를 모두 보이는 문제이다.
문제 풀이 : Python itertools - combinations에서 제공하는 것과 동일한 기능이기에 이를 활용한다.
가능한 다른 풀이 : 원리를 이용해서 직접 구현 할 수 있다. 이때는 for문을 통해서 오름차순인지 확인하고 중복된지를 확인하면서 만들면 된다.
풀이 코드
from itertools import combinations
N, M = map(int, input().split())
arr = [i for i in range(1, N+1)]
answer = list(combinations(arr, M))
for element in answer:
for element2 in element:
print(element2, end = " ")
print()
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 9935 문자열 폭발 문제 풀이 (0) | 2021.01.27 |
---|---|
[알고리즘][Python] 백준 15652 N과 M (4) 문제 풀이 (0) | 2021.01.26 |
[알고리즘][Python] 백준 9663 N-Queen 문제 풀이 (0) | 2021.01.26 |
[알고리즘][Python] 백준 9465 스티커 문제 풀이 (0) | 2021.01.25 |
[알고리즘][Python] 백준 5639 이진 검색 트리 문제 풀이 (0) | 2021.01.25 |