배낭 문제

dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight] + item[i].weight)

dp[ i ][ j ] → i번째 아이템까지 결정했을 때 무게가 j 일 때의 최대 가치

→ 이는 i 번째 아이템을 넣었거나, i 번째 아이템을 넣지 않았을 때의 가치 중 더 큰 것

LCS

dp[i][j] → A의 i번째 문자열과 B의 j번째 문자열까지의 가장 긴 공통 문자열 길이

dp[i][j] = dp[i - 1][j - 1] + 1 if A[i] == B[i]
				 = max(dp[i - 1][j], dp[i][j - 1]) if A[i] != B[i]