파게로그

[백준 15650번] 백트래킹 기본 2 본문

콤퓨타 왕왕기초/PS

[백준 15650번] 백트래킹 기본 2

파게 2020. 11. 17. 01:29

문제 링크: 15650번 N과 M (2)

https://www.acmicpc.net/problem/15650

 

백트래킹 기본 1의 코드를 참고해서 보면 좋다.

 

def select(arr, n, m, current, depth):
    # arr를 다 채웠으면 print 후 return
    if depth == m:
        string = ""
        for i in arr:
            string += str(i) + " "
        print(string)
        return
    # arr를 다 채우지 못했더라도 범위를 벗어나면 return
    if current > n:
        return
    
    # current를 arr에 저장할 때
    arr[depth] = current
    select(arr, n, m, current+1, depth+1)

    # current를 arr에 저장하지 않을 때
    select(arr, n, m, current+1, depth)

n, m = map(int, input().split())
arr = [0] * m
select(arr, n, m, 1, 0)

 

Comments