문제해결(PS)/백준(BOJ)

백준 15666 N과 M (12)

곰탱이장 2024. 12. 25. 21:49

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