DP문제를 풀 때 넘어야 할 산은 이게 모든 것을 고려해 준 것인가?를 판단하는 능력인 것 같다.
분명 어떤 식으로 풀어야 할지는 알겠으나, 풀이를 보고서도 이게 모든 것을 고려해준 것이 맞나?라는 생각이 든다.
해다아 코드는 문제 풀이이다.
이것을 보고 전체를 고려해 준 것이 맞나?라는 생각이 들었고,, 뭔가 맞는거 같기는 하다..
근데 무언가 확신은 들지 않는다...
이 문제를 푸는데에 가장 중요했던 점이 무엇일까??
바로 고려해 줘야 할 포인트인 것 같다.
dp[i] = max(dp[i - 3] + data[i - 1] + data[i], dp[i - 2] + data[i])에서
dp[i - 3] + data[i - 1] + data[i] -> 이 부분은 모든 것을 고려해 준 것이 맞다.
dp[i-3]은 세 번째전 까지의 최대 값을 구한 것이고, 이 값과 data[i - 1] + data[i]값을 더해준 값은 결국 dp[4]가 될 수 있는 모든 경우의 수 2개 중 하나이다.
'개발 > 알고리즘' 카테고리의 다른 글
[BOJ] 연속합_1912 (0) | 2021.01.13 |
---|---|
[BOJ] 포도주 시식_2156 (0) | 2021.01.12 |
[BOJ] RGB거리_1149 (0) | 2021.01.10 |
[BOJ] 촌수계산_2644 (0) | 2021.01.03 |
[BOJ] 알파벳_1987 (0) | 2021.01.02 |