Dynamic Programing

Dynamic Programing (다이나믹 프로그래밍)은 문제를 작은 문제들로 나누어 해결하는 방식의 알고리즘이다.

그중에서도 Memorization (메모리제이션) 기술은 다이나믹 프로그램의 핵심 기술이다.

메모리제이션 기술은 프로그램에서 같은 작업의 반복을 줄이기 위해서 사용한다.

계산한 값을 메모리에 저장하고 이용하는 방식을 통해 실행 시간을 단축하는 기술이다.

가장 대표적으로는 피보나치 수 (Fibonacci numbers)를 구하는 문제에 활용할 수 있다.