함수가 자신을 호출하는 문제 구조를 이해합니다.
재귀는 큰 문제를 같은 형태의 더 작은 문제로 줄입니다. 반드시 종료 조건이 있어야 하며 각 호출이 종료 조건에 가까워져야 합니다. 트리 탐색처럼 구조 자체가 재귀적인 문제에서 자연스럽습니다.
예제에서 def solve(value): if base_case: return ... return solve(smaller_value) 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
호출마다 스택 프레임을 사용하므로 깊은 데이터에서는 RecursionError가 발생할 수 있습니다. 단순 반복 계산은 for나 while이 더 안전합니다.
재귀 입력의 최대 깊이를 제한하고 외부에서 들어오는 중첩 데이터가 서비스 자원을 과도하게 사용하지 않도록 방어합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 factorial(0)의 결과가 1인 이유를 설명하고 6의 결과를 구하세요.
종료 조건을 빼거나 입력이 줄지 않으면 무한 재귀가 됩니다.
직접 바꿔보세요factorial(0)의 결과가 1인 이유를 설명하고 6의 결과를 구하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.