반응형
15654번: N과 M (5) (acmicpc.net)
15654번: N과 M (5)
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열
www.acmicpc.net
풀이
- 중복되지 않은 N가지 수를 입력 받고 , 그 중 M개를 뽑아 순열을 만들고 사전순으로 출력하면 되는 문제이다.
- 파이썬의 itertools 에서 permutations 을 import 하여 쉽게 순열을 구현 할 수 있다.
- 입력받은 N개의 수를 sort해 permutations 의 결과가 사전순으로 나올 수 있게 한다.
import sys
from itertools import permutations
n , m = map(int, sys.stdin.readline().split(" "))
stack = list(map(int , sys.stdin.readline().split(" ")))
stack.sort()
ans = list(permutations(stack, m))
if m == 1:
for t in range(0, len(ans)):
s = list(ans[t])
print(s[0])
else:
for t in range(0,len(ans)):
s = list(ans[t])
for u in range(0,len(s)-1):
print(s[u],end=" ")
print(s[len(s)-1])

반응형
'코딩 > 백준' 카테고리의 다른 글
알고리즘 - Python / 백준 - 9465번 : 스티커 (0) | 2021.09.20 |
---|---|
알고리즘 - Python / 백준 - 2407번 : 조합 (0) | 2021.09.20 |
알고리즘 - Python / 백준 - 15652번 : N과 M (4) (0) | 2021.09.20 |
알고리즘 - Python / 백준 - 15650번 : N과 M (2) (0) | 2021.09.20 |
알고리즘 - Python / 백준 - 1758번 : 알바생 강호 (0) | 2021.09.19 |