Memoization - 메모이제이션
Memoization - 메모이제이션
💫 Memoization
DC의 장점(직관적이고 간결)과 DP의 장점(부문제 해답의 재사용)을 결합
부분적인 결과들을 기록한 후 나중에 필요할 때 다시 계산할 필요 없이 재사용하는 기법
@ 4_0001
DC의 장점/외관 (직관적이고 간결)
동적계획법의 장점/내부 (성능 - 부문제 해답의 재사용)
결합
DC의 개선이냐, DP의 하향식 접근이냐
(어느쪽을 개선시켰는가에 대한 의견이 있지만 일단은)
메모리를 희생시켜 실행 시간의 이점을 얻음
1
2
3
4
5
6
7
8
9
10
int[] M = new int[MAX_SIZE]{0, 1};
int MemoFib(int n)
{
if (n == 0) return 0;
if (n == 1) return 1;
if (M[n] == 0)
M[n] = memo_fib(n - 1) + memo_fib(n - 2);
return M[n];
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.