[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/12900?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이 과정]
뭔가 dp문제일거 같아 하나씩 그려가며 풀어봤는데
dp[n] = dp[n-1] + dp[n-2] 라는 결론이 나왔다.
문제상으로 dp[1] = 1, dp[2] = 2로 고정이다!
[코드]
class Solution {
public int solution(int n) {
int answer = 0;
int[] dp = new int [n+1];
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];
}
}
[회고]
dp로 풀어야 겠다는 생각을 바로 했기 때문에 풀이는 쉬웠지만
문제에서 알려준 특정한 수로 나눈 나머지 값을 답으로 return 해야하는 조건을 읽지 않아 당황했다.
문제를 똑바로 읽자.
질문과 피드백은 언제나 환영입니다.
감사합니다.
'CodingTest > Programmers' 카테고리의 다른 글
[Programmers] 연속된 부분 수열의 합 (1) | 2025.05.01 |
---|---|
[Programmers] 쿼드압축 후 개수 세기 (0) | 2025.04.29 |
[Programmers] 택배상자 (1) | 2025.04.24 |
[Programmers] 더 맵게 (1) | 2025.04.22 |
[Programmers] 단어 변환 (0) | 2025.04.22 |