백준 12865

알고리즘 배낭의 최대가치를 결정하는 과정은 크게 두 가지의 경우로 생각할 수 있다. 배낭의 무게보다 물건의 무게가 더 크면 물건을 넣지 않는다. 그렇지 않다면 배낭의 가치를 측정한다. (이전 물건이 있으면 전부 빼고) 새로운 물건을 넣는다. 그리고 배낭의 무게에서 새로운 물건의 무게를 뺐을 때의 배낭의 최대 가치를 고려한다. 새로운 물건을 넣지 않고 이전 배낭을 그대로 가져간다. 어떤 자료구조를 사용해야 할까? 일단, 배낭에 물건을 넣거나 빼면서 배낭의 최대가치를 결정해야 하므로 각 물건의 무게와 가치를 저장할 2차원 배열이 필요하다. i \ j 0 1 0 a의 무게 a의 가치 1 b의 무게 b의 가치 2 c의 무게 c의 가치 이를 obj[i][j]로 정의하겠다. 그리고 배낭의 무게와 물건에 따른 배낭의..