재귀 용법 (Recursive Call)
목차
함수 안에서 동일한 함수를 호출하는 형태. f(x) = x * f(x-1)
구현 패턴
# 일반적 형태 1
def function(x):
if x > 일정값:
return function(입력 - 1)
else:
return 일정값, 입력값 , 특정값
# 팩토리얼 예시
def factorial(x):
if x > 1:
return x * factorial(x - 1)
else:
return x
# 일반적 형태 2
def function(x):
if x <= 일정값:
return 일정값, 입력값, 특정값
function(x - 1)
return 결과값공간 복잡도 비교
# 반복문 - 공간복잡도 O(1)
def factorial(x):
result = 1
for n in range(1, x + 1):
result = result * n
return result
# 재귀 - 공간복잡도 O(n) (함수 개수만큼 스택 공간 사용)
def factorial(x):
if x <= 1:
return x
return x * factorial(x - 1)시간 복잡도
n-1번 실행: O(n)