1~N으로 시작하는 중복되지 않는 길이 M 수열 출력
알고리즘: Backtracking
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
ret = []
def dfs():
if len(ret) == m:
print(*ret)
return
for i in range(1, n + 1):
if i not in ret:
ret.append(i)
dfs()
ret.pop()
dfs()
백트래킹과 dfs가 무엇이 다른 지 몰랐는데,
이번에 백트래킹 문제를 풀면서 dfs안에 백트래킹이 포함되어있다고 생각하게 되었다
지금까지 내가 푼 많은 dfs 문제들이 거진 다 백트래킹 문제였구나 하는 것?
아닐 수도 있음
하.. 코로나 + 프로젝트 준비로 알고리즘을 그동안 못풀었다..
거의 한 2주만에 보니까 이렇게 간단한 문제도
어떻게 푸는지 전혀 모르겠던....
난 정말 재귀가 싫어 흑흑 ㅠㅠ!