반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
주어진 수열에서 M개를 뽑는 중복 조합을 구하는 문제입니다. 단, 수열에는 같은 숫자가 들어갈 수 있으며, 중복되는 수열을 여러 번 출력해서는 안됩니다.
2022.04.03 - [Algorithm] - [Brute Force] 백준 15657 N과 M (8) - 파이썬(Python)
주어진 수열에서 M개의 중복조합을 구하는 N과 M (8) 문제와 유사합니다. 다만, 이번 문제에서는 수열에 동일한 숫자가 들어있을 수 있습니다. 단순히 itertools.combinations_with_replacement() 함수를 사용하면, 동일한 중복조합이 여러 번 나올 수 있습니다.
입력)
3 1
4 4 2
출력)
2
4 (첫 번째 4)
4 (두 번째 4)
따라서, set 자료형을 이용해서 중복되는 수열의 값을 제거해야 합니다.
3. 코드
from itertools import combinations_with_replacement
N, M = map(int, input().split())
numlist = set(map(int, input().split()))
case = combinations_with_replacement(sorted(numlist), M)
for i in case:
for j in i:
print(j, end=" ")
print()
set으로 중복되는 값을 제거한 후에, 중복조합을 구해줍니다.
itertools.combinations_with_replacement(lst, n): lst에서 중복을 허용해서 n개를 뽑을 조합
반응형
'Algorithm' 카테고리의 다른 글
[Brute Force] 백준 15651 N과 M (3) - 파이썬(Python) (0) | 2022.04.06 |
---|---|
[Brute Force] 백준 15659 N과 M (1) - 파이썬(Python) (0) | 2022.04.05 |
[Brute Force] 백준 15657 N과 M (8) - 파이썬(Python) (0) | 2022.04.03 |
[Brute Force] 백준 15654 N과 M (5) - 파이썬(Python) (0) | 2022.04.02 |
[Brute Force] 백준 15652 N과 M (4) - 파이썬(Python) (0) | 2022.04.01 |
댓글