본문 바로가기

problem solving

1182번: 부분수열의 합

문제를 풀다보면 사고력이 많이 부족하단 걸 느낀다.

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
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <vector>
 
 
void DFS(std::vector<int> val, int len, int cur, int sum, int result, int *count) {
    if (cur == len) {
        if (sum == result) {
            *count += 1;
        }
        return;
    }
 
    DFS(val, len, cur + 1, sum + val[cur], result, count);
    DFS(val, len, cur + 1, sum, result, count);
}
 
 
int main(void) {
    int len, result;
    std::cin >> len >> result;
 
    std::vector<int> val(len);
    for (int i = 0; i < len; i++) {
        std::cin >> val[i];
    }
 
    int count = 0;
    DFS(val, len, 00, result, &count);
 
    if (result == 0) {
        count--;
    }
    std::cout << count << "\n";
    return 0;
}
cs

'problem solving' 카테고리의 다른 글

1525번: 퍼즐  (0) 2020.02.22
1208번: 부분수열의 합2  (0) 2020.02.20
1168번: 요세푸스 문제2  (0) 2020.02.19
1167번: 트리의 지름  (0) 2020.02.19
1149번: RGB거리  (0) 2020.02.19