다이나믹 프로그래밍이란, 하나의 문제를 단 한번만 풀도록 하는 알고리즘이다.
분할 기법(퀵 정렬, 병합 정렬 이진검색)의 단점 극복을 위해 사용하는 알고리즘.
const fibonacci = (n) => {
if (n === 1) return 1;
if (n === 2) return 1;
return fibonacci(n - 2) + fibonacci(n - 1);
};
const memory = [0];
const fibonacci = (n) => {
if(n === 1) return 1;
if(n === 2) return 1;
if(memory[n] !== null) return memory[n];
return memory[n] = fibonacci(n-1) + fibonacci(n-2)
}