효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.
제한사항
class Solution {
public long solution(int n) {
long answer = 0;
long[] arr = new long[n+1];
if(n==1) return 1;
if(n==2) return 2;
arr[1] = 1L;
arr[2] = 2L;
for(int i=3; i<=n; i++) {
arr[i] = (arr[i-1] + arr[i-2]) % 1234567 ;
}
return arr[n];
}
}
처음에는 수열로 풀 생각을 못하고 어떻게 푸는게 맞을까 계속 고민만 했다
진짜 바보 같은 고민... 😥
n을 1부터 6까지만 해봐도 이게 피보나치 수열인지 알수 있을 텐데...
문제 질문에 풀이에 대해 잘 설명해서 써주신 부분이 있어서 참고하여 풀었다! 감사합니다 🙌🏻
글 재미있게 봤습니다.