백준 3067 c++

magicdrill·2024년 10월 31일
0

백준 문제풀이

목록 보기
477/655

백준 3067 c++

코딩 테스트 대비용 냅색문제 풀이를 시작한다.

#include <iostream>
#include <vector>

using namespace std;

void input_data(vector<int> &coin, int *M) 
{
	int N, C;
	int i;

	cin >> N;
	for (i = 0; i < N; i++)
	{
		cin >> C;
		coin.push_back(C);
	}
	cin >> *M;

	return;
}

void find_answer(vector<int> &coin, int M) 
{
	int N = coin.size();
	vector<int> dp(10001, 0);
	int i, j;

	dp[0] = 1;
	for (i = 0; i < N; i++)
	{
		for (j = coin[i]; j <= M; j++)
		{
			dp[j] += dp[j - coin[i]];
		}
		cout << "i : " << i << " dp[M] : " << dp[M] << "\n";
	}
	cout << dp[M] << "\n";

	return;
}

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

	int T;

	cin >> T;
	while (T)
	{
		vector<int>coin;
		int M;

		input_data(coin, &M);
		find_answer(coin, M);

		T--;
	}

	return 0;
}

0개의 댓글