N,M = map(int,input().split()) INF= float('inf') dp = [INF]*(M+1) apps_memory = list(map(int,input().split())) apps_value = list(map(int,input().split())) for i in range(N): memory,value = apps_memory[i],apps_value[i] for k in range(M,-1,-1): if k == 0: if memory >=M: memory = M dp[memory] = min(dp[memory],value) else: if dp[k]: num_memory = k + memory if num_memory >=M: dp[M] = min(dp[M],dp[k]+value) else: dp[num_memory] = min(dp[num_memory],dp[k]+value) print(dp[M])
N,M = map(int,input().split()) INF= float('inf') apps_memory = list(map(int,input().split())) apps_value = list(map(int,input().split())) total_sum = sum(apps_value) dp = [0]*(total_sum+1) result = INF for i in range(N): for j in range(total_sum,apps_value[i]-1,-1): if j - apps_value[i] >=0: dp[j] = max(dp[j],dp[j-apps_value[i]]+apps_memory[i]) if dp[j] >= M: result = min(j,result) print(result)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 9079 동전 게임 (0) | 2021.05.04 |
---|---|
[BOJ/백준] 8972 미친 아두이노 (0) | 2021.05.04 |
[BOJ/백준] 6209 제자리 멀리뛰기 (0) | 2021.05.04 |
[BOJ/백준] 7453 합이 0인 네 정수 (0) | 2021.05.03 |
[BOJ/백준] 6987 월드컵 (0) | 2021.05.03 |