문제의 조건이 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;
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 프로그래머스 이상한 문자 만들기 (0) | 2021.11.05 |
---|---|
(Java) 프로그래머스 다트 게임 (0) | 2021.11.05 |
(Java) 프로그래머스 JadenCase (0) | 2021.10.19 |
(Java) 프로그래머스 가장 큰 수 (0) | 2021.10.19 |
(Java) 프로그래머스 행렬 테두리 회전하기 (0) | 2021.10.17 |