[백준]2228 구간 나누기
Contents
https://www.acmicpc.net/problem/2228
풀이:
-
dp[n][m] : n개의 숫자를 m개의 구간으로 나눈 최대 합
-
dp[i][t] = dp[i - 1][t] : i번째 수를 포함하지 않는 경우
-
dp[i][t] = max(dp[i][t], (t == 1 ? 0 : dp[y - 1][t - 1]) + a[i] - a[y]) : i번째 수를 포함하는 경우 i번째를 포함하므로 구간을 하나 빼고 그것에 i번째 수를 포함하는 구간을 더한다.
-
max함수를 쓰므로 dp 초기화를 잘해줘야한다.
코드:
|
|