백준 2293번 동전 1 문제풀이(C++)

YooHeeJoon·2022년 11월 6일
0

백준 문제풀이

목록 보기
38/56

백준 2293번 동전 1

아이디어

각각의 동전으로 만들 수 있는 경우의 수

12345678910
1원 1개1개1개1개1개1개1개1개1개1개
2원 1개1개1개1개1개
5원 1개1개

위 표를 바탕으로 점화식 작성

dp[j] = dp[j]+ dp[j - coin[i]];

점화식을 바탕으로 재구성

12345678910
1원일 때 dp[i] 1111111111
2원일 때 dp[i] 1223344556
5원일 때 dp[i] 12234567810

문제풀이

#include<bits/stdc++.h>
using namespace std;
int coin[101], dp[100001];
int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n, k;
	cin >> n >> k;
	for (int i = 1; i <= n; i++) cin >> coin[i];
	dp[0] = 1;
	for (int i = 1; i <= n; i++) {
		for (int j = coin[i]; j <= k; j++)
			dp[j] = dp[j]+ dp[j - coin[i]];
	}
	cout << dp[k] << '\n';
	return 0;
}

0개의 댓글