https://www.acmicpc.net/problem/15654
Permutation(순열)을 이용하는 문제입니다.
우선 문제부터 간단하게 요약하면, N개의 자연수가 주어질 때, 길이 M인 수열을 만들어 사전순으로 출력해야 하는 것이 문제입니다.
<Solution>
크게 어려운 점 없이 python의 경우 itertools libraray를 사용하여 permutations를 활용하면 됩니다. 이 때, 사전순 정렬을 위해 list를 미리 sorting 해주면 자동적으로 permutation을 할 때, 사전순으로 정렬 됩니다.
실제 구현은 아래와 같습니다.
import sys
import itertools
N, M = list(map(int, sys.stdin.readline().rstrip().split()))
array = list(map(int, sys.stdin.readline().rstrip().split()))
array.sort()
for e in itertools.permutations(array, M):
tmp = list(e)
tmp = list(map(str, tmp))
print(' '.join(tmp))
반응형
'코딩테스트 > Python 문제풀이' 카테고리의 다른 글
[백준] 외판원 순회 (0) | 2022.07.12 |
---|---|
[백준] 숨바꼭질 3 (0) | 2022.07.12 |
[백준] 트리의 부모 찾기 (0) | 2022.07.11 |
[백준] 구간 합 구하기 5 (0) | 2022.07.11 |
[백준] 피보나치 수 6 (0) | 2022.07.11 |