#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;
}
'프로그래밍 > 백준' 카테고리의 다른 글
[C언어/DP] 2579 : 계단 오르기 (0) | 2022.02.07 |
---|---|
[C언어/DP] 2293 : 동전1 (0) | 2022.01.31 |
[C언어/브르투포스] 2798 : 블랙잭 (0) | 2022.01.25 |
[C언어/브루트포스(DFS)] 15649 : N과 M(1) (0) | 2022.01.19 |
[C언어/브루트포스(DFS)] 1759 : 암호 만들기 (0) | 2022.01.18 |