Notice
Recent Posts
Recent Comments
Link
꾸준하게 거북이처럼
완전탐색기초 : 재귀와 스택 본문
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에 저장해서 그래서!! 맨 나중의 데이터부터 사용되었던 것이다 그렇다.!
'Algorithm 문제 & 공부' 카테고리의 다른 글
GCD - 유클리드 알고리즘 (0) | 2022.07.23 |
---|---|
완전탐색기초 : 재귀 이진수출력 (0) | 2022.06.17 |
이분탐색(이진탐색) - 탐색 시간복잡도 줄이기 (0) | 2022.06.12 |
Anagram 문제 리스트만 사용해서 풀기 (0) | 2022.06.11 |
해쉬 - Anagram 개선코드 (0) | 2022.06.11 |
Comments