민팽로그

[백준 / BOJ] 2293: 동전 1 본문

PS/백준📖

[백준 / BOJ] 2293: 동전 1

민팽 2022. 3. 3. 17:30

https://www.acmicpc.net/problem/2293

 

2293번: 동전 1

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 


 

 

문제


n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다.

사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다.

 

입력


첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.

 

출력


첫째 줄에 경우의 수를 출력한다. 경우의 수는 2^31보다 작다.

 

 

예제 입력


3 10
1
2
5

 

 

예제 출력


10

 

코드 


#include <iostream>
using namespace std;

int n, k;
int coin[101];
int dp[10001];

int main(void) {
	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];
	return 0;
}

 

 

 


 

 

하단 링크를 참조.

 

 

 

 

 

 

reference

- https://debuglog.tistory.com/78

'PS > 백준📖' 카테고리의 다른 글

[백준/BOJ] 1920: 수 찾기  (0) 2022.03.14
[백준/BOJ] 7579: 앱  (0) 2022.03.13
[백준/BOJ] 2629: 양팔저울  (0) 2022.03.02
[백준/BOJ] 10942: 팰린드롬?  (0) 2022.03.01
[백준/BOJ] 1520: 내리막 길  (0) 2022.02.27
Comments