학습 자료
재귀 호출(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 이하가 되면 함수는 더 이상 자기 자신을 호출하지 않고 종료됩니다.
재귀 사용의 장단점
장점:
-
코드가 더 깔끔하고 이해하기 쉽습니다.
-
복잡한 문제를 간결하게 표현할 수 있습니다.
-
특히 자료구조와 알고리즘을 자연스럽게 구현할 수 있습니다.
단점:
-
각 함수 호출마다 메모리를 사용하여, 메모리 사용이 더 많아질 수 있습니다.
-
잘못 구현하면 무한 루프에 빠질 수 있습니다.
이 챕터의 강의 · 파이썬 알고리즘 실전
- 1. 파이썬 알고리즘 심화
- 2. 재귀 호출(recursive-call)이란?
- 3. 재귀 함수로 피보나치 수열 구현하기
- 4. 빈칸 채우기 퀴즈
- 5. 코딩 퀴즈 - 피보나치 수열
- 6. 동적 계획법과 분할 정복
- 7. 동적 계획법 파이썬 구현 방법
- 8. 선택형 퀴즈
- 9. 코딩 퀴즈 - 1로 만들기
- 10. 병합 정렬(Merge Sort)이란?
- 11. 병합 정렬 구현 방법
- 12. 선택형 퀴즈
- 13. 코딩 퀴즈 - 병합 정렬을 활용한 리스트 정렬
- 14. 퀵 정렬(Quick Sort)이란?
- 15. 퀵 정렬 파이썬으로 구현하기
- 16. 선택형 퀴즈
- 17. 코딩 퀴즈 - 퀵 정렬로 리스트 정렬하기
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말