yha97 2022. 10. 10. 09:59

날짜 : 2022. 10. 10

사용 언어 : python

 

문제

코드

import sys

def dfs():
    if len(stack) >= m:
        for i in stack:
            print(i, end=' ')
        print()
        return
    for i in range(1, n+1):
        if check[i] == False:
            check[i] = True
            stack.append(i)
            dfs()
            stack.pop()
            check[i] = False
    return
    pass

n, m = map(int, sys.stdin.readline().split())
stack = []
check = [False] * (n+1)
dfs()

# 출력할 스택과 방문여부 체크용 리스트 생성
# 재귀적으로 실행하면서 출력스택 용량이 다 차면 출력 후 해당 함수를 빠져나오면서 False로 다시 반환

 

 

알게된 점

- 어제 풀이한 백트래킹의 기본 예제다.

 

 

참고 사이트