darkprince   3년 전

#include

using namespace std;

int main() {

int i, j, n, k;

int dp[10001] = {0, };

scanf("%d %d", &n, &k);//"n"몇가지종류동전

int coins[n];//가짓수(종류)배열

for (i = 0; i < n; i++) scanf("%d", &coins[i]);//몇개씩있는지,배열칸마다값

dp[0] = 1;

for (i = 0; i < n; i++)//for example::n[0]

for (j = coins[i]; j <= k; j++)//coins[i] 동전종류 가져옴 for example::n[0]의 가치로 k얼마나 다양하게 채울수있나 두번쨰부턴

//그다음은 0 ,1 -> 0,1,2 사용해서 k 채울수있는 경우의수 구하기

if (j - coins[i] >= 0)//1원이면 2원하나로 2원이면 5원하나로 이런느낌?

dp[j] += dp[j - coins[i]];    <-----글을쓴이유(이녀석의 역할이 뭔가염 설명 정말 쉽게해주시면 감사하겠읍니다  

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

return 0;

}

댓글을 작성하려면 로그인해야 합니다.