Stargazer

[백준] 12865번: 평범한 배낭 C++ 본문

Undergraudate basics(학부생 기초)/자료구조, 알고리즘

[백준] 12865번: 평범한 배낭 C++

COM2IT 2022. 5. 11. 00:44
반응형
#include <iostream>
#include <vector>
using namespace std;


int n, k; // n: 물품의 수, k: 버틸 수 있는 무게
int DP[101][100001];
int W[101];
int V[101];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(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 (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] << '\n';

	return 0;
}
반응형
Comments