백준 1535 c++

magicdrill·2024년 10월 22일
0

백준 문제풀이

목록 보기
469/655
post-thumbnail

백준 1535 c++

KT 코테에서 냅색 문제가 나왔는데 항상 약점이었다. 새로 공부할 목록 중 하나로 연습하겠다.

#include <iostream>
#include <vector>

using namespace std;

void input_data(int* N, vector<int>& L, vector<int>& J)
{
	cout << "input_data()\n";
	int i, temp;

	cin >> *N;
	for (i = 0; i < *N; i++)
	{
		cin >> temp;
		L.push_back(temp);
	}
	for (i = 0; i < *N; i++)
	{
		cin >> temp;
		J.push_back(temp);
	}

	return;
}

int find_answer(int N, vector<int>& L, vector<int>& J)
{
	cout << "find_answer()\n";
	int answer = 0;
	int i, j;
	vector <int> dp(101, 0);

	for (i = 0; i < N; i++)
	{
		cout << "i : " << i << "\n";
		for (j = 100; j >= L[i]; j--)
		{
			dp[j] = max(dp[j], dp[j - L[i]] + J[i]);
			cout << "dp[" << j << "] = " << dp[j] << "\n";
		}
	}
	answer = dp[99];

	return answer;
}

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;
	vector <int> L;
	vector <int> J;

	input_data(&N, L, J);
	cout << find_answer(N, L, J) << "\n";

	return 0;
}

0개의 댓글