코딩 테스트

(Java) 프로그래머스 피보나치 수

로승리 2021. 10. 19. 18:57

문제의 조건이 n번째 피보나치 수를 1234567로 나눈 나머지를 반환하라고 나와있다.

근데 이 조건을 잘못 이해하기 쉽다.

먼저 n번째 피보나치 수를 구하고 리턴전에만 나누면 된다고 생각 했는데

아무리 해도 테스트 케이스가 통과가 안되었는데

마지막에만 나누는게 아니라 매번 f(x) 의 값을 구할때마다 나눠줘야 했다...

문제의 조건을 좀 더 명확하게 표현해주면 좋을것 같다.

 


최종 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int f0 = 0;
        int f1 = 1;
        
        for(int i=2; i<=n; i++) {
            answer = (f0 + f1) % 1234567;
            f0 = f1;
            f1 = answer;
        }
        
        return answer;
    }
}