본문 바로가기
코딩테스트

백준 16639 평범한 배낭

by 희안 2021. 4. 13.

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

Knapsack 알고리즘 DP를 이용해서 푸는 문제 ...

#include<stdio.h>
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
 
using namespace std
;
int d[101][100001];
int w[101];
int v[101];
 
int main() {
    
    //freopen("Text.txt", "r", stdin);
 
    int n, k;
 
    cin >> n >> k;
 
    for (int i = 1; i <= n; i++) {
        cin >> w[i] >> v[i];
    }
 
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= k; j++) {
            d[i][j] = d[i - 1][j];
            if (j - w[i] >= 0) {
                d[i][j] = max(d[i][j], d[i - 1][j - w[i]] + v[i]);
            }
        }
    }
 
    cout << d[n][k] << endl;
 
}

'코딩테스트' 카테고리의 다른 글

백준 2993 세부분  (0) 2021.04.15
백준 20055 컨베이어 벨트위의 로봇 (구현)  (1) 2021.04.14
백준 17780 새로운 게임  (0) 2021.04.13
백준 17825 주사위 윷놀이  (0) 2021.04.08
백준 15686번 치킨 배달  (0) 2021.04.08

댓글