| ||
using namespace std; | ||
int arr[20]; | ||
int cnt; | ||
int N, S; | ||
void match(int idx, int sum){ | ||
if(idx==N){ | ||
cnt = sum==S ? cnt+1 : cnt; | ||
return; | ||
} | ||
for(int i=0; i<2; i++){ | ||
match(idx+1,sum = i==true? sum+arr[idx] : sum); | ||
} | ||
} | ||
int main(){ | ||
cin >> N >> S; | ||
for(int i=0; i<N; i++){ | ||
cin >> arr[i]; | ||
} | ||
match(0, 0); | ||
if(S==0) cnt--; | ||
cout << cnt; | ||
} |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
180330_2750_수 정렬하기 (0) | 2018.03.30 |
---|---|
180327_10869_사칙연산 (0) | 2018.03.27 |
180302_2501_약수 구하기 (0) | 2018.03.02 |
180302_9506_약수들의 합 (0) | 2018.03.02 |
180302_2600_구슬게임 (0) | 2018.03.02 |