728x90
개요
https://www.acmicpc.net/problem/12865
골드 5 문제다.
풀이
완전 0-1 배낭 알고리즘의 정석 문제다.
DP 테이블을 활용, , ,
항상 느끼는 부분이지만 과거에 한번 접해봤던 건 다시 하면 잘되는 경향이 있는 것 같다.
몇 개월 전에는 잘 이해가 되지 않았는데, 다시 보니 어렵지 않다,,~
코드
#include <bits/stdc++.h>
using namespace std;
int N, K;
int W[101] = {}, V[101] = {};
int dp[101][100001] = {};
int main() {
cin.tie(0)->sync_with_stdio(0);
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++) {
if (W[i] > j) {
dp[i][j] = dp[i - 1][j];
} else {
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - W[i]] + V[i]);
}
}
}
cout << dp[N][K];
}
'알고리즘&자료구조 > 문제' 카테고리의 다른 글
[BOJ/26154번] 한양 가왕 (C++/애드 혹) (2) | 2023.06.06 |
---|---|
[BOJ] 13016 내 왼손에는 흑염룡이 잠들어 있다 C++ (4) | 2023.06.01 |
[BOJ] 2564 경비원 C++ (0) | 2023.05.29 |
[BOJ] 7490 0 만들기 C++ (0) | 2023.05.29 |
[BOJ] 16990 마법 장벽 C++ (0) | 2023.05.24 |