Algorithm/BOJ

[백준] 15652번 - Silver 3 N과 M(4), 파이썬 코드

ramin0119 2024. 9. 6. 20:14
728x90

solved.ac의 Class 4 문제 중 N과 M(4) 문제이다.

 

 

1부터 비내림차순으로 내려가야 하는 특징 때문에 재귀 DFS 문제라는 것을 알 수 있다.

"같은 수를 여러 번 골라도 된다."라는 문제의 특징이 있으니 조심하자.

 

해결했던 코드는 다음과 같다.

import sys
global n, m

lst = []

def dfs(num):
    # 리스트의 개수가 m과 같아지면 return
    if len(lst) == m:
        print(" ".join(map(str, lst)))
        return
    
    for i in range(num, n+1):
        lst.append(i)
        dfs(i)
        lst.pop()

if __name__ == "__main__":
    n, m = map(int, sys.stdin.readline().split())
    dfs(1)
728x90