반응형
[ Contents ]
1. 문제 (링크 참조)
15657번: N과 M (8)
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열
www.acmicpc.net
2. 문제 풀이
주어진 수열에서 M개를 뽑는 중복 조합을 구하는 문제입니다.
2022.04.01 - [Algorithm] - [Brute Force] 백준 15652 N과 M (4) - 파이썬(Python)
위 문제에서 '수열'을 입력받는 것만 추가되었습니다. 동일하게 itertools.combinations_with_replacement() 함수를 이용해서 쉽게 풀 수 있습니다.
3. 코드
from itertools import combinations_with_replacement
N, M = map(int, input().split())
numlist = list(map(int, input().split()))
case = combinations_with_replacement(sorted(numlist), M)
for i in case:
for j in i:
print(j, end=" ")
print()
사전순으로 중복조합을 출력하기 위해, 오름차순으로 정렬된 numlist를 인수로 대입합니다.
itertools.combinations_with_replacement(lst, n): lst에서 중복을 허용해서 n개를 뽑는 조합
반응형
'Algorithm' 카테고리의 다른 글
[Brute Force] 백준 15659 N과 M (1) - 파이썬(Python) (0) | 2022.04.05 |
---|---|
[Brute Force] 백준 15666 N과 M (12) - 파이썬(Python) (0) | 2022.04.04 |
[Brute Force] 백준 15654 N과 M (5) - 파이썬(Python) (0) | 2022.04.02 |
[Brute Force] 백준 15652 N과 M (4) - 파이썬(Python) (0) | 2022.04.01 |
[Brute Force] 백준 15650 N과 M (2) - 파이썬(Python) (0) | 2022.03.31 |
댓글