divide-and-conquer은 서로 상관관계가 없는 문제를 해결하는데 적합하다. 반면, dynamic programming은 서로 상관관계가 있는 문제를 해결하는데에 적합하다. dp[i][j] --> 개의 보석을 만큼의 한도의 가방에 넣었을 때 보석의 가치 보석 1개를 넣었을 때 보석의 무게가 100, 가치가 1000이라 했을 때 dp[1][100]=1000 dp[[i][j]=max(dp[i-1][j], LIS 최장 증가 부분 수열 11053 카드 구매하기 11052 포도주 시식 2156 --> 일반항만 생각하면 되는 것이 아니고 한 단계 더 생각해야 한다. 1074 Z 분할과 정복은 문제 자체로 나오기보다는 수단으로 나온다. 4등분하고 Z 형태의 순서로 방문하는 것은 크기와 상관없이 항상 적용되는..