이번 챕터에서는 재귀 프로그래밍에 대해서 작성해보겠습니다. 재귀는 쿨한 프로그래밍 기법이지만 잘못 사용한다면 런타임 스택 오버플로에 빠져서 효율성이 떨어지는 문제가 있습니다. 꼬리호출 최적화라고 불리는 테크닉을 이용하면 이 문제를 해결할 수 있습니다. 데이터를 저장하는 알고리즘을 사용하면 성능은 향상됩니다. 코틀린은 빌트인 메모이제이션을 지원해주지는 않지만 지금까지 배운 기술들을 사용하면 표현력이 강한 메모이제이션 기능을 쉽게 만들 수 있습니다. 재귀의 강점과 위험성 재귀를 사용하면 분할정복기법을 사용할 수 있습니다. 예제로 살펴보자. // 분할정복기법 문제를 해결할 때 문제를 작게 쪼개서 각 부분의 솔루션을 구현한 후 각 결과를 합쳐서 해결하는 기법 fun sort(numbers: List): List..