memoization

안윤경·2022년 8월 25일
0

알고리즘

목록 보기
2/8

memoization이란?


메모이제이션은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 동적 계획법의 핵심이 되는 기술이다. -위키백과

< 예시 >
피보나치수열을 만들때 일반적으로 재귀를 사용해서 풀수 있지만 그렇게 된다면 반복되는 수가 너무 많아서 작동이 느리고 실행이 안될수 있다
이때 memoization를 이용해서 반복되는 수행을 제거해 실행을 시키는 것이다

let fibonacci = function (n) {
  const memo = [0, 1];
  const aux = (n) => {
    // 이미 해결한 적이 있으면, 메모해둔 정답을 리턴한다.
    if (memo[n] !== undefined) return memo[n];
    // 새롭게 풀어야하는 경우, 문제를 풀고 메모해둔다.
    memo[n] = aux(n - 1) + aux(n - 2);
    return memo[n];
  };
  return aux(n);
};

https://www.devh.kr/2020/Understanding-Memoization-In-JavaScript/

profile
프론트엔드 개발자 안윤경입니다

0개의 댓글