
F(n-2)의 값을 first라는 변수로 지정하고, F(n-1)의 값을 second라는 변수로 지정한다.
먼저 first에 F(0) 값을 넣고 second에 F(1) 값을 넣는다.
그 다음에는 F(2)부터 반복하며 아래를 실행한다.
1. answer에는 first와 second를 더한 값인 F(n)의 값을 넣는다.
2. 다음 반복문을 위하여 first에는 F(n-1)인 second의 값을 넣어준다.
3. 다음 반복문을 위하여 second에는 F(n)인 answer의 값을 넣어준다.
이 때, 문제에서 n번째 피보나치의 수를 1234566로 나눈 나머지를 리턴하라고 하였고, 이는 n번째 피보나치의 수가 integer의 범위를 벗어날 수 있기 때문이다.
반복문을 도는 중에 integer의 범위를 벗어나지 않도록 매번 더한 후에 1234567로 나누어준다.
class Solution {
public int solution(int n) {
int answer = 0;
int first = 0;
int second = 1;
for (int i = 2; i < n+1; i ++) {
answer = (first + second) % 1234567;
first = second;
second = answer;
}
return answer;
}
}
