본문 바로가기
Algorithm(CodeTree, Python)/Backtracking

[코드트리] 거꾸로 순열 Python

by kurooru 2023. 2. 7.
# n 입력
n = int(input())

# 함수들
# print_comb()
def print_comb():
    for num in comb:
        print(num, end=' ')
    print()
    
# make_comb(curr_idx)
def make_comb(curr_idx):
    # 종료 조건
    if curr_idx == n:
        print_comb()
        return
    
    # 넣어 주기
    for i in range(n, 0, -1):
        if visited[i]:
            continue

        comb.append(i)
        visited[i] = True

        make_comb(curr_idx + 1)

        comb.pop()
        visited[i] = False    

# 설계
# comb, visited
comb, visited = [], [False for _ in range(n+1)]
# make_comb
make_comb(0)