냅색 2

[Python/BOJ] 백준 1106 호텔_DP

문제에서 적어도 c명을 늘리는 것이므로 더 많이 늘리는 것도 생각을 해주어야 하기 때문에 dp의 크기를 c+100으로 한다. 100의 이유는 100명보다 작거나 같게만 고객의 수가 비용에 따라 증가할 수 있기 때문이다. 입력받은 (비용과 고객의 수)리스트를 돈다. (첫번째 for문) 입력받은 고객의 수에서 시작해서 dp리스트의 끝까지 돈다. (두번째 for문) 최소 고객의 수보다 작게는 증가를 못시키기 때문이다. dp[i]의 의미는 i 명을 증가시키는데 필요한 돈의 최솟값이다. 점화식 : dp[i] = min(dp[i-custo] + cost , dp[i]) 고객을 custo 만큼 늘린 대신 cost를 더한 값과 원래 값중에서 더 저렴한 값으로 갱신한다. i가 원했던 고객의 수 보다 크보다 같은 경우 값..

[Python/백준]12865번_평범한 배낭(DP, 냅색)

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 코드 : N,K = map(int,input().split()) items = [] dp = [0 for _ in range(K+1)] for i in range(N): w,v = map(int,input().split()) for j in range(K,w-1,-1): dp[j] = max(dp[j],dp[j-w]+v) print..