<aside> 📎 목차

</aside>

Dynamic Programming

<aside> 📎 캐싱을 사용하는 최적화 기법

<aside> 📎 주로 사용되는 예제

추가 문제

  1. House Robber
  2. Best Time to Buy and Sell Stock
  3. Climbing Stairs </aside>

동적(다이나믹) 프로그래밍이란?

<aside> 🤔 다이나믹 프로그래밍을 고려하기

  1. 문제를 하위 문제로 나눌 수 있는가?
  2. 재귀로 해결하는 문제인가? - tree
  3. 하위 문제가 반복적인가?
  4. Memoize할 수 있는가?

1. Overlapping Subproblems 중복되는 하위 문제

2. Optimal Substructure 최적 부분 구조

3. Top-down + Memoization 메모이제이션 📌

4. Bottom-up Approach


Memoization

캐싱 Caching