https://www.acmicpc.net/problem/15657
python의 itertools 라이브러리를 사용하는 문제입니다.
우선 문제부터 간단하게 요약하면,
N개의 자연수중 중복을 허용해서 M개를 뽑을 때, 이 뽑는 경우들을 사전의 순서에 맞게 출력하면 되는 문제입니다.
<Solution>
단순하게 그냥 sequence를 미리 sorting 해주고, python itertools의 combinations_with_replacement를 사용하여 갯수만큼 뽑아내면, 이전에 sorting을 해둔덕에 사전순으로 자동으로 나오는 것을 알 수 있습니다.
실제 구현은 아래와 같습니다.
import sys
import itertools
N, M = list(map(int, sys.stdin.readline().rstrip().split()))
seq = list(map(int, sys.stdin.readline().rstrip().split()))
seq.sort()
for i in itertools.combinations_with_replacement(seq, M):
tmp = list(i)
tmp = list(map(str, tmp))
print(' '.join(tmp))
반응형
'코딩테스트 > Python 문제풀이' 카테고리의 다른 글
[백준] 팰린드롬 분할 (0) | 2022.07.18 |
---|---|
[백준] ACM Craft (0) | 2022.07.15 |
[백준] 공항 (0) | 2022.07.13 |
[백준] 외판원 순회 (0) | 2022.07.12 |
[백준] 숨바꼭질 3 (0) | 2022.07.12 |