본문 바로가기
프론트엔드로 가는 길/프로그래머스

56. 피보나치 수

by woody-j 2023. 9. 11.

https://school.programmers.co.kr/learn/courses/30/lessons/12945?itm_content=course14743#
[ 문제 설명 ]

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명
피보나치 수는 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은 2 이상 100,000 이하인 자연수입니다.

[ 문제 풀이 ]

 

첫번째 풀이

function solution(n) {
    let result = 0;
    let firstNum =0;
    let secondNum =1;

for(let i=2; i<=n; i++ ){
  result = (firstNum + secondNum)%1234567;
    firstNum = secondNum;
    secondNum = result;
}
    return result
}

 

에러 사항 :
문제를 잘못 이해했다. 1234567로 계속해서 나눠줘야했다. 

또 하나, 알게된 점 : 재귀함수보다 for문이 속도가 더 빠르다.

'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글

58. 체육복  (0) 2023.09.14
57. 문자열 다루기 기본  (0) 2023.09.12
55. 콜라츠 추측  (0) 2023.05.05
54. 두 정수 사이의 합  (0) 2023.05.02
53. 정수 제곱근 판별  (0) 2023.05.01