Algorithm 문제 & 공부
완전탐색기초 : 재귀와 스택
somm12
2022. 6. 17. 11:22
def DFS(x):
if x > 0:
DFS(x-1)
print(x,end=' ')
if __name__ == "__main__":
n = int(input())
DFS(n)
# 3을 입력해서 DFS를 호출한다면 1 2 3 이렇게 결과가 호출됨.
# 코드가 실행될 때 stack에 매개변수, 지역변수, 기억해야할 주소저장(다시 돌아올 때 어디로 와야하는지 표시)
# 이런식으로 스택에 저장된다. 한 번 호출될때 이 데이터들이 저장된 묶음을 stack frame이라고 한다.
코드가 실행될 때 컴퓨터는 stack에 매개변수, 지역변수, 기억해야할 주소를 저장한다(재귀호출 후 다시 돌아오는 시점의 주소)
한 번 호출될 때 이렇게 저장되는 것들의 묶음을 stack frame이라고 한다.
DFS재귀 호출 다음이 print이기 때문에 종료까지 재귀호출을 하고 난 후부터 x값을 출력해서 1부터 출력이 된다.
stack에 저장해서 그래서!! 맨 나중의 데이터부터 사용되었던 것이다 그렇다.!