2293번: 동전 1

Memo


https://s3-us-west-2.amazonaws.com/secure.notion-static.com/997dd84e-81cc-4635-af67-6ca350baa9fb/Untitled.png

Code


제출 날짜

2021/03/14

메모리

2176 KB

시간

0 ms

// 2293 번

#include <iostream>
#include <vector>
#include <algorithm>

int N, K;
int max;
std::vector<int> ip;
std::vector<int> dp;

void output()
{
	std::cout << dp[K];
}

void solution()
{
	for(int i = 0 ; i < N ; i++)
		for(int j = ip[i] ; j <= K ; j++)
			dp[j] = dp[j] + dp[j - ip[i]];
}

void input()
{
	std::cin >> N >> K;
	ip.resize(N);
	dp.resize(K + 1);
	for (auto &i : ip)
		std::cin >> i;
	dp[0] = 1;
	// for (int i : ip)
	// 	std::cout << i << " ";
}

void preset()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	std::cout.tie(NULL);
}

int main(void)
{
	preset();
	input();
	solution();
	output();
}