📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 15663 N과 M (9) 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/15663

 

15663번: N과 M (9)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net


문제 해석 : N개의 수 중에서 M개를 고르는데 중복 없이 결과를 출력해야한다. 이때 N은 중복된 수가 들어있다.

 

문제 풀이 :  permutations과 set을 활용해서 문제를 풀 수 있다. 


풀이 코드

from itertools import permutations

N, M = map(int, input().split())
num_list = list(map(int, input().split()))
num_list.sort()

answer = []
for candidate in list(permutations(num_list, M)):
    answer.append(candidate)

answer = sorted(list(set(answer)))

for ans in answer:
    for element in ans:
        print(element, end = " ")
    print()

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.