재귀 호출(recursive-call)이란?
재귀
는 함수가 스스로를 호출하는 것을 뜻합니다. 주로 팩토리얼, 피보나치 수열 등 수학적 함수를 표현할 때 사용합니다.
팩토리얼 재귀 함수 예시
def factorial(n): if n == 0: # 기저 조건 return 1 # 재귀 종료 else: # 재귀 호출 return n * factorial(n-1) # 자기 자신을 호출하면서 n-1을 인자로 전달 # 예시: 5의 팩토리얼 계산 factorial_result = factorial(5) print("factorial_result:", factorial_result) # factorial_result: 120
재귀함수는 복잡한 문제를 간단하고 반복적인 문제로 나누어 해결하는 데 유용합니다.
기저 조건(Base Case)
모든 재귀 함수는 종료 조건, 즉 기저 조건이 필요합니다. 기저 조건은 재귀 호출이 끝나는 지점을 정의합니다.
예를 들어 위 factorial
함수에서 if n == 0
은 재귀 함수를 종료하는 기저 조건입니다.
이 조건으로 인해 n
이 0 이하가 되면 함수는 더 이상 자기 자신을 호출하지 않고 종료됩니다.
재귀 사용의 장단점
장점:
-
코드가 더 깔끔하고 이해하기 쉽습니다.
-
복잡한 문제를 간결하게 표현할 수 있습니다.
-
특히 자료구조와 알고리즘을 자연스럽게 구현할 수 있습니다.
단점:
-
각 함수 호출마다 메모리를 사용하여, 메모리 사용이 더 많아질 수 있습니다.
-
잘못 구현하면 무한 루프에 빠질 수 있습니다.
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말