재귀함수의 호출 (+ 스택)
CS2022. 7. 11. 16:50재귀함수의 호출 (+ 스택)

def DFS(x): if x > 0: DFS(x - 1) print(x, end=' ') if __name__ == "__main__": n = int(input()) DFS(n) 다음과 같은 간단한 재귀함수가 있을 때 함수가 호출되어 리턴되는 순서는 다음과 같다. DFS(3) → DFS(2) → DFS(1) → DFS(0) DFS(0)은 x > 0을 만족하지 못하므로 종료되고 DFS(1)로 복귀한 후 stack 메모리에서 할당 해제된다. 이후 DFS(1)은 함수 내의 print()를 실행한뒤 DFS(2)로 복귀한다. DFS(2)도 마찬가지로 하단의 print()를 실행한뒤 DFS(3)으로 복귀한다. DFS(3)은 print()를 실행한뒤 처음 호출했던 main() 함수의 DFS()으로 복귀한다.

image