https://school.programmers.co.kr/learn/courses/30/lessons/12945?itm_content=course14743#
[ 문제 설명 ]
문제 설명
피보나치 수는 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 |