https://www.acmicpc.net/problem/1988 dp문제 처음에 누적합이 떠올랐는데조합으로 원소 뽑으려면 3000!/(3000-n)! * n!이여서 불가능했다. 이후 문제분류 보고 풀음 처음엔 dp[N+1][B+1][2][2] = dp[N][B][잠 or 안잠][ 준비 or 준비아님]로 생각했다가경우의 수를 구체화 하다보니 더 간결하게 만들 수 있었고, 다음과 같은 식을 세우고 풀었다.// 1. 잠을 잔 경우s[n][b] = Math.max(ns[n-1][b-1], s[n-1][b-1] + cost[n]);// 1-1. 안잤었음, 잠횟수 소모, 안잤었으니 준비 시간임ns[n-1][b-1]// 1-2. 잤었음, 잠횟수 소모, 잤었으니 준비 시간 아님s[n-1][b-1] + cost[n..