class Solution {
public long solution(int n) {
long[] dp = new long[n + 1];
dp[0] = 1; dp[1] = 1;
for (int i = 2; i < n + 1; i++) dp[i] = (dp[i - 2] + dp[i - 1]) % 1234567;
return dp[n];
}
}
이 문제도 2 x n 타일링 문제와 같은 DP 문제인것같다.
이 문제도 다음에 다시 도전해봐야겠다.
2 x n 타일링 문제를 해결하면서 같이 해결되었다.
1234567로 나눈 나머지를 리턴하는데 왜 long을 반환하는지는 의문이다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges