PROGRAMMERS/연습문제
[프로그래머스] [JAVA] [Level 2] [연습문제] 멀리 뛰기
c0mmedes
2022. 9. 21. 17:36
class Solution {
public long solution(int n) {
long answer = 0;
long arr[] = new long[n+1];
// 피보나치의 수열 알고리즘 적용
arr[0] = arr[1] = 1;
for(int i=2; i<=n; i++){
arr[i] = (arr[i-1] + arr[i-2]) % 1234567 ;
}
answer = arr[n];
return answer;
}
}
- 처음에는 감이 안와서 고민을 좀 했다.
- 그래서 고민을 하다가 그냥 구해보다보니 피보나치 수열 문제였다.
- 1칸 -> (1)
2칸 -> (1, 1) (2)
3칸 -> (1, 1, 1)
(2, 1) (1, 2)
4칸 -> (1, 1, 1, 1)
(2, 1, 1) (1, 2, 1) (1, 1, 2)
5칸 -> (1, 1, 1, 1, 1)
(2, 1, 1, 1) (1, 2, 1, 1) (1, 1, 2, 1) (1, 1, 1, 2)
(2, 1, 2) (2, 2, 1) (1, 2, 2)
1칸 1개
2칸 2개
3칸 3개
4칸 5개
5칸 8개