DFS&BFS를 위한 기초

yozzum·2022년 3월 20일
0

Stack

stack = []
stack.append(5)
stack.pop()

Queue

from collections import deque
queue = deque()
queue.append(1)
queue.append(2)
queue.reverse()
queue.popleft()

재귀함수

  • 재귀함수 기본 : stack에 함수가 저장되고 꺼내지듯 동작함.
def recursive_function(i):
	if i == 3:
    	return
    print(i, '번째 재귀함수에서', i+1, '번째 재귀함수를 호출합니다.')
    recursive_function(i+1)
    print(i, '번째 재귀함수를 종료합니다.')
recursive_function(1)

1번째 재귀함수에서, 2번째 재귀함수를 호출합니다.
2번째 재귀함수에서, 3번째 재귀함수를 호출합니다.
2번째 재귀함수를 종료합니다.
1번째 재귀함수를 종료합니다.

  • factorial
def factoral(n):
	if n <= 1:
    	return 1
    return n * factorial(n-1)
factorial(5)
  • 유클리드 호제법 : 두 자연수의 최대공약수 구하기
    • 두 자연수 A, B (A>B)
    • A를 B로 나눈 나머지 R
    • A와 B의 최대공약수는 B와 R의 최대공약수와 같다.
def gcd(a, b):
	if a % b == 0:
    	return b
	return gcd(b, a % b)
gcd(192, 162)

result: 6

profile
yozzum

0개의 댓글