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
https://chanhuiseok.github.io/posts/improve-6/
[알고리즘 트레이닝] 5장 - 동적계획법과 냅색(Knapsack) (백준 12865번 평범한 배낭 문제로 살펴보기)
컴퓨터/IT/알고리즘 정리 블로그
chanhuiseok.github.io
#include <iostream>
#include <stdio.h>
#define max_size 101
using namespace std;
int main(){
int n, k;
int w[max_size], v[max_size];
int dp[max_size][100001];
cin >> n >>k;
for(int i=1; i<n+1; i++){
cin >> w[i] >> v[i];
}
for(int i=1; i<n+1; i++){
for(int j=1; j<k+1; 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];
}
}
}
cout <<dp[n][k];
return 0;
}
'코딩테스트 대비' 카테고리의 다른 글
[프로그래머스 c++] 같은 숫자는 싫어 (1) | 2022.08.22 |
---|---|
[프로그래머스 c++] 구명보트 (0) | 2022.08.22 |
[c++] 소수점 자릿수 출력하기 / [Softeer] 성적평균 문제 풀이 (0) | 2022.06.10 |
[프로그래머스 Lv.1] 3진법 뒤집기 (0) | 2022.05.06 |
[프로그래머스 Lv.1] 약수의 개수와 덧셈 (0) | 2022.05.06 |