알고리즘/programmers
프로그래머스 레벨2 피보나치의 수 (JAVA)
dev-jo
2021. 7. 20. 20:28
프로그래머스 레벨2 피보나치의 수를 풀었다..
https://programmers.co.kr/learn/courses/30/lessons/12945
코딩테스트 연습 - 피보나치 수
피보나치 수는 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) =
programmers.co.kr
모든 코드는 GitHub 에 올려놓았다.
문제는 어렵지 않다..
근데 %로 나눌 때 내가 실수로 1234567을 써야 하는데
124567로 잘못 적어서 시간이 소요된 거 말곤..
풀이는 2개가 있다..
일단 재귀..
class Solution {
public int solution(int n) {
return recursive(0,1, n);
}
public int recursive(int f1, int f2 , int n ) {
int f = (f1 + f2) % 1234567;
if(n == 2) {
return f;
}
return recursive(f2, f, n -1);
}
}
두 번째 풀이
class Solution {
public int solution(int n) {
int[] fArr = new int[n + 1];
fArr[0] = 0; // F(0) = 0;
fArr[1] = 1; // F(1) = 1;
for(int i=2; i<fArr.length; i++) {
fArr[i] = (fArr[i -1] + fArr[i - 2]) % 1234567;
}
return fArr[n];
}
}
크게 어려운 문제는 아니었다..