Recursion과 Dynamic Programming에 대해 간략하게 정리하고 Leetcode 문제를 풀어보자. Recursive solution은 한 문제를 여러 서브 문제로 쪼개 결과를 합치는 방법이다. 이러한 Recursive solution에는 크게 세 가지의 접근 방식이 있다. 바로 Top-down approach, bottom-up approach, 그리고 half-and-half approach다. bottom-up 은 f(0) -> f(1) -> f(2)->...->f(n) 이런 식이고, 탑다운은 반대로 생각하면 된다. 하프앤하프의 대표적인 예로는 binary search와 merge sort가 있다. Recursion 우선 Recursion은 공간복잡도가 비효율적이다. 모든 Recurs..