Koder / 박성훈
article thumbnail

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

 

2293번: 동전 1

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

www.acmicpc.net

 

풀어보았다.

dp용 배열 arr은 걍 널찍널찍하게 잡았고, arr[i]는 i원을 만들 수 있는 경우의 수이다.

#include <stdio.h>

int n,input[101],k;
int arr[100001] = {0};

int main(){
	scanf("%d %d", &n, &k);
	for(int i=0; i<n; i++){
		scanf("%d", &input[i]);
	}
	arr[0] = 1;
	for(int i=0; i<n; i++){
		for(int j=0; j<k; j++){
			arr[j+input[i]] += arr[j];
		}
	}
	printf("%d", arr[k]);
	return 0;
}
반응형