프로그래머스 코딩테스트 연습 (멀리 뛰기)
import java.util.*;
class Solution {
public long solution(int n) {
long answer = 0;
ArrayList<Integer> list = new ArrayList<>();
int i;
list.add(1);
list.add(2);
if(n==1) return list.get(0);
for(int k = 2; k<n; k++){
i = (list.get(k-1)+list.get(k-2))%1234567;
list.add(i);
}
answer = (list.get(list.size()-1));
return answer;
}
}
/* 위 문제가 피보나치 수열임을 아는게 가장 중요 (점화식까지 써두고 피보나치 수열인지는 몰랐던 바보....)
n값이 증가하면 값이 오버플로우 발생하니 % 연산을 미리 해줘야함 */
댓글