memoization

송지현·2022년 8월 26일
0

🤔 메모이제이션...

메모이제이션은 '메모리에 넣기'라는 의미이고 '기억되어야 할 것'이라는 뜻을 갖고있다.

메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 즉 입력값에 대한 결과를 저장함으로써 같은 입력값에 대해 함수가 '한 번'만 실행되는 것을 보장한다. 대표적으로 피보나치 수열 알고리즘에 많이 쓰인다. 아래 코드를 보자.

재귀 함수를 사용한 피보나치 수열

function fibonacci(n, memo) {
  memo = memo || {};

  if (memo[n]) return memo[n];
  if (n <= 1) return n;

  return memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
}
profile
열심히 구르는 감자

0개의 댓글