[코딩 테스트] javaScript #18

안광의·2021년 8월 1일
0

코딩 테스트

목록 보기
18/38
post-thumbnail

문제

문제 설명
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
예를들어

  • F(2) = F(0) + F(1) = 0 + 1 = 1
  • F(3) = F(1) + F(2) = 1 + 1 = 2
  • F(4) = F(2) + F(3) = 1 + 2 = 3
  • F(5) = F(3) + F(4) = 2 + 3 = 5

와 같이 이어집니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.

제한 사항

  • n은 1이상, 100000이하인 자연수입니다.

입출력 예

nreturn
32
55

[출처] 프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/12945)


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

[0,1]이 할당된 피보나치 배열을 만들어 n번째 인덱스까지 피보나치 수를 push해주는 형태로 코드를 작성하였고 추가해주는 과정 중간에 1234567을 넘는 수가 나올걸 대비해 1234567로 나눈 나머지를 push하도록 하였다. 피보나치 관련 문제는 코드스테이츠 코플릿에서 많이 풀어봤고 완성된 피보나치에 % 1234567를 적용하나, 계산과정 중간에 % 1234567를 해줘도 값은 동일하게 출력된다는 것을 알고 있어서 어렵지 않게 풀 수 있었다.

profile
개발자로 성장하기

0개의 댓글