꾸준하게 거북이처럼

완전탐색기초 : 재귀와 스택 본문

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에 저장해서 그래서!! 맨 나중의 데이터부터 사용되었던 것이다 그렇다.!

Comments