목차

재귀 용법 (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)