일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 코드트리
- react-query
- swiftUI
- 회고
- Front-end
- react
- Apple Developer Academy
- 프로그래머스
- AppleDeveloperAcademy
- UIKit
- 프로젝트
- JavaScript
- git
- 프론트엔드
- ios
- error
- 알고리즘
- 코딩테스트실력진단
- Xcode
- globalcommunity
- frontend
- SWIFT
- velog
- iOSDeveloper
- 코딩테스트
- 코드트리챌린지
- 자바스크립트
- NextJs
- TypeScript
- tshaped
Archives
- Today
- Total
Moon Work
[프로그래머스] 피보나치 수_연습문제 본문
피보나치 수_연습문제 (level 2)
문제 설명
피보나치 수는 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 이하인 자연수입니다.
풀이
피보나치 수는 이전 두개의 값을 더한 값을 현재의 값으로 가지는 수의 연속이기 때문에 값을 더해주는 과정을 반복한다. 다만 숫자가 너무 커질 경우 C언어 같은 경우에서 int의 범위를 넘어가는 경우가 있기 때문에 now에 저장되는 값을 1234567로 나눈 값으로 저장한다.
function solution(n) {
let prev1 = 0;
let prev2 = 1;
let now;
for(let i=2;i<=n;i++){
now = (prev1 + prev2)%1234567;
prev1 = prev2;
prev2 = now;
}
return now%1234567;
}
더 나은 로직 또는 클린 코드를 위한 피드백은 감사히 받겠습니다. 😎
'알고리즘' 카테고리의 다른 글
[프로그래머스] 최솟값 만들기_연습문제 (0) | 2022.06.02 |
---|---|
[프로그래머스] 오픈채팅방_2019 KAKAO BLIND RECRUITMENT (Daily 알고리즘 9일차) (0) | 2022.06.01 |
[프로그래머스] 예상 대진표_2017 팁스다운 (0) | 2022.05.30 |
[프로그래머스] 영어 끝말잇기_연습문제 (0) | 2022.05.29 |
[프로그래머스] 스킬트리_연습문제 (0) | 2022.05.27 |