Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

백준 22.01.28. 15652번 - N과 M (4) 본문

Algorithm/BaekJoon

백준 22.01.28. 15652번 - N과 M (4)

HappyFrog 2022. 1. 28. 16:08

import sys

arr = []


def DFS(idx, n, m):
    if len(arr) == m:
        sys.stdout.write(" ".join(map(str, arr)) + "\n")
        return

    for i in range(idx, n + 1):
        arr.append(i)
        DFS(i, n, m)
        arr.pop()


N, M = map(int, sys.stdin.readline().split())

DFS(1, N, M)
  • DFS를 활용합니다.
  • 하지만 유의해야할 점이 있는데, 비내림차순(인덱스가 커 질수록 요소들이 같거나 커짐)이므로 시작인덱스를 정해주는게 좋습니다.
    • => 시작인덱스를 정해주면 해당 검색경로에 나오는 모든 값을 다 사용할 수 있기 때문입니다.
    • 따라서 재귀를 통해 인덱스가 증가하며 비내림차순 재귀함수가 완성됩니다.
  • 이를 적절히 출력해주면 됩니다.