Memoization

김병민·2022년 3월 2일
0

TIL

목록 보기
28/68
post-thumbnail

Memoization

Memoization란 ?

동일한 반복 계산을 처리할 때 이 처리값을 배열, 객체, 변수 등에 담아둬 반복 수행을 제거하는 처리 기법

객체를 활용한 방법

      function objectMemoization(n) {
        let memo = {};
        function factorial(number) {
          if (number === 0) return 1;
          else {
            let saved = memo[number - 1] || factorial(number - 1);
            let result = number * saved;
            memo[number] = result;
            return result;
          }
        }
        return factorial(n);
      }

배열을 활용한 방법

     function arrayMemoization(n) {
        let memo = Array.from(Array(n + 1).fill(0));
        function factorial(number) {
          if (number === 0) return 1;
          else {
            let saved = memo[number - 1] || factorial(number - 1);
            let result = number * saved;
            memo[number] = result;
            return result;
          }
        }
        return factorial(n);
      }
profile
I'm beginner

0개의 댓글