[프로그래머스] 피보나치 수 (JS)

hhkim·2023년 7월 31일
0

Algorithm - JavaScript

목록 보기
85/188
post-thumbnail

풀이 과정

  1. 초기 피보나치 배열 만들기: [0, 1, 1]
  2. 이후 인덱스 3부터 주어진 수까지 1씩 증가하면서 피보나치 수 담기: push()
  3. 2번 반복문이 끝나면 배열의 마지막 요소 리턴

코드

function solution(n) {
  const arr = [0, 1, 1];
  for (let i = 3; i <= n; ++i) {
    arr.push((arr[i - 1] + arr[i - 2]) % 1234567);
  }
  return arr.at(-1);
}

🤔

당연하게 처음에 피보나치 재귀 함수를 만들었는데 테스트 뒷부분을 통과하지 못했다.
질문하기 힌트를 보니까 콜스택에 제한이 있어서 단순 배열로 풀어야 한다고 했다.
그런데도 계속 통과를 못해서 보니... n이 100,000 이하인 자연수인데 피보나치 수열이 어느순간 급격하게 커져서 표현할 수 있는 숫자 범위를 넘어선다고 했다.
그래서 마지막에 나머지를 한 번 구하는 게 아니라 배열에 수를 담을 때마다 나머지를 구해서 넣었다.

0개의 댓글