[Algorithms] 13. Fibonacci Series ๐Ÿ”ฅ

๋ฌธ์ œ


ํ•ด๊ฒฐ๋ฐฉ๋ฒ•


  1. result๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  [0,1] ๋ฐฐ์—ด์„ ๋‹ด๋Š”๋‹ค
  2. for loop๋ฅผ 2๋ฒˆ index๋ถ€ํ„ฐ ๋ˆ๋‹ค
  3. a, b ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์„œ i-1, i-2๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค
  4. result์— (a+b)๋ฅผ pushํ•œ๋‹ค

์ œ์ถœ ์ฝ”๋“œ


function fib(n) {
  const result = [0,1];
  
  for(let i = 2; i<= n; i++) {
    const a = result[i-1];
    const b = result[i-2]
    
    result.push(a+b);
  }
  return result[n]
}
function fib(n) {
  if (n <2) {
    return n;
  }
  return fib(n-1) + fib(n-2)
}
function memoize(fn) {
  const cache = {};
  return function(...args) {
    if (cache[args]) {
      return cache[args];
    }
    
    const result = fn.apply(this, args);
    cache[args] = result;
    
    return result;
  };
}

function fib(n) {
  if (n < 2) {
    return n;
  }
  return fib(n-1) + fub(n-2);
}

fib = memoize(fib);

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ