🍋 문제링크


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

🍎 코드 제출 기록 (메모리 및 시간)


메모리 : 1116 KB

시간 : 0ms

🍉 Code


#include <stdio.h>

int main(){
	int n, k;
	int arr[109], dp[20009];

	scanf("%d %d", &n, &k);

	for(int i=0 ; i<n ; i++)
		scanf("%d", &arr[i]);

	for(int i=0 ; i<=k ; i++)
		dp[i] = 0;

	for(int i=0 ; i<n ; i++){
		if (arr[i]>k) continue;
		dp[arr[i]] += 1;
		for (int j = arr[i]+1 ; j<=k ; j++){
			dp[j] += dp[j-arr[i]];
		}
	}

	printf("%d\\n", dp[k]);

	return (0);
}

🥝 메모


넘나 어렵...😢

<유의사항>

#include <stdio.h>

int main(){
	int n, k;
	int arr[109], dp[20009];

	scanf("%d %d", &n, &k);

	for(int i=0 ; i<n ; i++)
		scanf("%d", &arr[i]);

	for(int i=0 ; i<=k ; i++)
		dp[i] = 0;

	dp[0] = 1;
	for(int i=0 ; i<n ; i++){
		if (arr[i]>k) continue;
		//dp[arr[i]] += 1;
		for (int j = arr[i] ; j<=k ; j++){
			dp[j] += dp[j-arr[i]];
		}
	}

	printf("%d\\n", dp[k]);

	return (0);
}

<문제풀이>

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b64ebbee-936d-45db-abfc-3d5d58326b3d/Untitled.png