#include <stdio.h>

#include <stdlib.h>


int seek(int *list, int size, int val){


if (val <= 0)

return 0; 


int ret;

    int *temp = (int*)calloc(val+1, sizeof(int));      

    temp[0]=1;


    for(int i = 0; i < size; i++){

        for(int j = list[i]; j <= val; ++j) temp[j] += temp[j - list[i]];         

    } 


ret  = temp[val];

free(temp);

return ret;

}


int main() {


    int num[5] = {1, 4, 6, 10, 11};

    printf( "%d" , seek(num, 5, 20));

   

}



이거보다 쉽게 빠르게 짜는놈 있으면 ㅇㅈ 한다.