from collections import deque
queue = deque()
queue.append()
queue.popleft()
queue.reverse() //역순으로 출력하기
def recursive_function(i):
if i == 100:
return
print(i, '호출')
recursive_function(i+1)
recursive_function()
파이썬은 최대 호출 깊이가 정해져있어서 maximum recurstion depth exceeded 에러 메시지가 뜬다\
재귀함수는 스택과 같은 형태
그러므로 재귀함수를 사용할 때는 스택과 함께 사용하는 것이 좋음
while, for문 없이 반복을 할 수 있음
n! = 1 X 2 X 3 X ... X (n-1) X n
def factorial_iterative(n):
result = 1
for i in range(1, n+1):
result =*= i
return result
def factorial_iterative(n):
if n <= 1:
return 1
return n * factorial_recursive(n-1)
dfs
깊이 우선 탐색
그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘
스택 자료구조 혹은 재귀함수를 이용
1. 탐색 시작 노드를 스택에 삽입하고 방문 처리
2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리합니다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냅니다
3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복한다