문제 출처 - Programmers
문제는 여기
[풀이]
1. 규칙을 보면 피보나치와 동일하게 값이 늘어나는 것을 알 수 있다.
2. 0, 1, 2에 각각 해당하는 값을 넣고 이후로는 피보나치를 dp로 구현한다.
3. 마지막 값을 출력한다.
[접근]
1. dp를 사용해서 문제를 해결해야겠다고 생각하였다.
[코드]
class Solution {
public int solution(int n) {
int[] dp = new int[60001];
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
}
return dp[n];
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 (JAVA) (0) | 2022.05.15 |
---|---|
[프로그래머스] 거스름돈 (JAVA) (0) | 2022.05.13 |
[프로그래머스] 땅따먹기 (JAVA) (0) | 2022.05.09 |
[프로그래머스] 정수 삼각형 (JAVA) (0) | 2022.05.07 |
[프로그래머스] 약수의 개수와 덧셈 (JAVA) (0) | 2022.05.03 |