Algorithm(CodeTree, Python)/Backtracking

[코드트리] n개 중에 m개 뽑기 Python

kurooru 2023. 2. 1. 09:55
# n, m
n, m = map(int, input().split())

# 함수들
# print_ans()
def print_ans():
    for a in ans:
        print(a, end=' ')
    print()

# make_comb(curr_idx)
def make_comb(curr_idx):
    # 종료조건
    if curr_idx == m+1:
        print_ans()
        return
    
    # 숫자 넣어주기
    for i in range(1, n+1):
        # 오름차순으로 만들기
        if curr_idx >= 2 and ans[-1] >= i:
            continue
        else:
            ans.append(i)
            make_comb(curr_idx + 1)
            ans.pop()

# 설계
# ans
ans = []
# make_comb
make_comb(1)