본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#260 백준 파이썬 [15663] N과 M (9) - 순열

https://www.acmicpc.net/problem/15663

 

Solution

리스트에 먼저 permutation 함수를 이용해 전부를 추가해주고 중복된 항목만 걸러주면 된다.

비효율적이지만 쉬운 set() 집합 함수를 이용해서 중복을 걸러주었다.

비효율적이고 중복을 없애주는 마법의 함수 --> A = list(set(A)) 

 

Python Code

from itertools import permutations

N, M = map(int, input().split())
N_list = list(map(int, input().split()))
N_list = sorted(N_list) #순서대로 나오게 정렬 먼저

output = []
for numbers in list(permutations(N_list, M)):
    output.append(numbers)
output = sorted(list(set(output))) #중복 제거 후 정렬 까지 한번에!

for numbers in output:
    for num in numbers:
        print(num, end=' ')
    print()