이 문제는 itertools 모듈의 permutations 함수를 이용하여 해결할 수 있습니다. permutations 함수는 주어진 iterable에서 지정된 길이의 순열을 구하는 함수입니다.
from itertools import permutations
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
numbers = list(map(int, input().split()))
# 주어진 수열을 사전순으로 정렬합니다.
numbers.sort()
# permutations 함수를 이용하여 길이가 M인 순열을 구합니다.
# set을 이용하여 중복되는 수열을 제거합니다.
result = set(permutations(numbers, m))
# 결과를 사전순으로 정렬하고 출력합니다.
for seq in sorted(result):
print(*seq)
먼저 입력에서 주어진 n개의 수를 numbers 리스트에 저장합니다. 그리고 sort() 함수를 사용하여 주어진 수열을 사전 순으로 정렬합니다.
permutations() 함수를 사용하여 numbers 리스트에서 길이가 m인 순열을 구합니다. 이때, set() 함수를 사용하여 중복되는 순열을 제거합니다.
마지막으로 sorted() 함수를 사용하여 결과를 사전순으로 정렬하고, print() 함수를 사용하여 결과를 출력합니다.
'코딩문제' 카테고리의 다른 글
[백준 11404번] 플로이드 (파이썬 풀이) (0) | 2023.05.05 |
---|---|
[백준 1753번] 최단경로 (Python 풀이) (0) | 2023.05.04 |
[LeetCode] 1026. Maximum Difference Between Node and Ancestor (Python) (0) | 2022.12.09 |
[LeetCode] 623. Add One Row to Tree (Python) (0) | 2022.10.05 |
[LeetCode] 1578. Minimum Time to Make Rope Colorful (Python) (1) | 2022.10.04 |