1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> int arr[50] = { 0 }; int rst = 0, n, s; void sum(int idx, long long curSum) { if (idx > n) return; if (curSum + arr[idx] == s) rst++; sum(idx + 1, curSum); sum(idx + 1, curSum + arr[idx]); } int main() { scanf("%d %d", &n, &s); for (int i = 1; i <= n; i++) { scanf("%d", &arr[i]); } sum(1, 0); printf("%d", rst); } | cs |
복습이 필요하다.
재귀 방식으로 해결하는 문제였는데, 오랜만에 해서 그런지 재귀 방식이 익숙하지 않다.
다시 반드시 봐야 하는 문제다
'알고리즘 > 브루트포스' 카테고리의 다른 글
1748 수 이어쓰기1 (0) | 2020.01.13 |
---|---|
2231 분해합 (0) | 2020.01.13 |
7568 덩치 (0) | 2020.01.13 |
2309 일곱 난장이 (0) | 2020.01.12 |
1065 한수 (0) | 2020.01.12 |