문제 설명
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
입출력 예
n return
3 | 2 |
5 | 5 |
풀이: 문제의 점화식 그대로 사용해서 구현
function solution(n) {
let fi = [0, 1];
for(let i=2; i<=n; i++) {
fi[i] = (fi[i-1]+fi[i-2])%1234567;
}
return fi[n];
}
참고할만한 코드:
function solution(n) {
var answer = 0;
let f1 = 0, f2 = 1;
for(let i = 2; i <= n; i++){
answer = (f1 + f2) % 1234567;
f1 = f2;
f2 = answer;
}
return answer;
}
배운점: 피보나치 기본 원리 n-2번째 수+ n-1번째 수 = n번째 수 를 이용해 반복할 때마다
n-2번째 수 => n-1번째 수
n-1번째 수 => n번째 수
로 반환하여 배열을 사용하지 않고 구현
'코딩테스트 문제풀기' 카테고리의 다른 글
[프로그래머스] A로 B 만들 lev0. (javascript) (0) | 2023.05.22 |
---|---|
[프로그래머스] 삼총사 lev1. (javascript) (0) | 2023.04.30 |
2217번 (python) (0) | 2022.10.10 |
2775번 dp활용 (python) (0) | 2022.10.10 |
백준 1475번 (python) (0) | 2022.09.29 |
문제 설명
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
입출력 예
n return
3 | 2 |
5 | 5 |
풀이: 문제의 점화식 그대로 사용해서 구현
function solution(n) {
let fi = [0, 1];
for(let i=2; i<=n; i++) {
fi[i] = (fi[i-1]+fi[i-2])%1234567;
}
return fi[n];
}
참고할만한 코드:
function solution(n) {
var answer = 0;
let f1 = 0, f2 = 1;
for(let i = 2; i <= n; i++){
answer = (f1 + f2) % 1234567;
f1 = f2;
f2 = answer;
}
return answer;
}
배운점: 피보나치 기본 원리 n-2번째 수+ n-1번째 수 = n번째 수 를 이용해 반복할 때마다
n-2번째 수 => n-1번째 수
n-1번째 수 => n번째 수
로 반환하여 배열을 사용하지 않고 구현
'코딩테스트 문제풀기' 카테고리의 다른 글
[프로그래머스] A로 B 만들 lev0. (javascript) (0) | 2023.05.22 |
---|---|
[프로그래머스] 삼총사 lev1. (javascript) (0) | 2023.04.30 |
2217번 (python) (0) | 2022.10.10 |
2775번 dp활용 (python) (0) | 2022.10.10 |
백준 1475번 (python) (0) | 2022.09.29 |