재귀 함수

재귀 축소 모델

기저 조건이 반복을 멈추고, 재귀 호출은 입력을 줄이며, 반환 과정에서 중간 결과가 다시 합쳐집니다.

기저 조건

더 호출하지 않는 지점

팩토리얼의 n == 0처럼 직접 답을 돌려줄 수 있는 작은 경우입니다.

if (n == 0)
축소

입력을 작은 문제로 변경

n - 1처럼 다음 호출이 종료 조건에 가까워져야 합니다.

factorial(n-1)
결합

돌아오며 결과를 합침

각 호출이 받은 결과에 자기 단계의 계산을 더해 최종 값을 만듭니다.

n * sub
비용

스택과 중복 계산을 고려

피보나치처럼 같은 호출이 반복되면 반복문이나 메모이제이션이 더 낫습니다.

call stack
종료모든 입력이 언젠가 기저 조건에 도달하는지 확인합니다.
깊이입력 크기가 커질 때 호출 깊이가 스택 한계를 넘지 않는지 봅니다.
대안단순 누적 문제는 반복문이 더 빠르고 이해하기 쉬울 수 있습니다.