https://www.acmicpc.net/problem/15666
이 문제는 N개의 자연수 중 M개를 중복하여 고른 내림차순 수열을 중복없이 사전순으로 출력하는 문제이다. 이 문제도 DFS를 응용하여 풀면 쉽게 풀 수 있는 문제이다.
def chosing(seq):
if len(seq) == M+1:
ans_set.add(tuple(seq[1:]))
return
for i in Ns:
if i >= seq[-1]:
chosing(seq+[i])
N,M = map(int,input().split())
Ns = list(map(int,input().split()))
ans_set = set()
chosing([-1])
ans_list = sorted(list(ans_set))
for ans in ans_list:
print(' '.join(str(a) for a in ans))
'문제해결(PS) > 백준(BOJ)' 카테고리의 다른 글
백준 1149 RGB거리 (0) | 2024.12.27 |
---|---|
백준 16953 A → B (0) | 2024.12.26 |
백준 15663 N과 M (9) (0) | 2024.12.25 |
백준 11725 트리의 부모 찾기 (0) | 2024.12.25 |
백준 11053 가장 긴 증가하는 부분 수열 (0) | 2024.12.25 |