동적 설계법 - 값을 기억해서 재활용한다. -1
동적 설계법(DP : Dynamic Programming)이란 알고리즘 설계 기법의 하나로서 프로그래밍 콘테스트에서 매우 자주 출제됩니다. 탐색 메모화 및 동적 설계법 베낭문제(Knapsack problem)무게와 가격이 각각 wi, vi인 n개의 물건이 있습니다. 무게의 총합이 W를 초과하지 않도록 물건을 선택했을 때 가각 총합의 최대치를 구하세요.예)입력n = 4(w, v) = {(2, 3), (1, 2),(3, 4), (4, 9)}W = 7 출력 14 ( 4, 0, 2 번 물건을 고른다) 이것은 배낭 문제라고 불리는 유명한 문제입니다. 이 문제는 어떻게 접근하면 좋을까요? 우선 일반적인 방법으로 생각해보면 (넣는다/안 넣는다) 이 두 가지 상태로 분기하면서 탐색하는 방법을 생각할 수 있습니다. 코드..
2016. 10. 11.