프로그래밍/백준
[C언어/knapsack(DP)] 12865 : 평범한 배낭
JINJIN123
2022. 1. 28. 12:26
#include<stdio.h>
int w[101];
int v[101];
int dp[101][100001];
int N,K;
int max(int num1,int num2){
return num1>=num2?num1:num2;
}
int main(void){
scanf("%d %d",&N,&K);
for(int i=1;i<=N;i++)
scanf("%d %d",&w[i],&v[i]);
for(int i=1;i<=N;i++){
for(int j=1;j<=K;j++){
if(j-w[i]>=0){
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
}
else
dp[i][j]=dp[i-1][j];
}
}
printf("%d",dp[N][K]);
return 0;
}