티스토리 뷰

Develop

memoize 적용한 factorial, fibonacci

Kyeongti 2021. 9. 13. 14:37

Fibonacci 함수

 

const memoFibo = memoizeFibonacci();
memoFibo(7);
memoFibo(10);

 

function memoizeFibonacci() {
  const save = {};
  return function fibonacci(number) {
    if (number < 1) return 0;
    if (number === 1) return 1;
    const saved1 = save[number - 1] || fibonacci(number - 1);
    const saved2 = save[number - 2] || fibonacci(number - 2);
    const result = saved1 + saved2;
    save[number] = result;

    return result;
  }
}

 

Factorial함수

function memoizeFactorial() {
  const save = {};
  return function factorial(number) {
    if (number === 1) return 1;
    const saved = save[number - 1] || memo(number - 1);
    const result = number * saved;
    save[number] = result;

    return result;
  };
}

const memoizeFact = memoizeFactorial();
memoizeFact(7);
memoizeFact(9);

'Develop' 카테고리의 다른 글

Mobx state tree(MST) 사용기 - 간단한 카운터 예제  (0) 2022.06.12
클로저 (Closure)  (0) 2021.11.26
진법 변환기 in JavaScript  (0) 2021.11.07
lodash _.debounce, _.throttle  (0) 2021.09.12
Javascript 이미지 업로드 방법  (0) 2021.07.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함