• Source
    1. #include <iostream>
    2. #include <string>
    3. #include <vector>
    4.  
    5. using namespace std;
    6.  
    7. vector<int> gNumbers;
    8. int numbers_size;
    9. int g_target;
    10. int answer;
    11.  
    12. void DFS(int index, int sum)
    13. {
    14. if(index == numbers_size)
    15. {
    16. if(g_target == sum) answer++;
    17. return ;
    18. }
    19.  
    20. DFS(index+1, sum + gNumbers[index]);
    21. DFS(index+1, sum - gNumbers[index]);
    22. }
    23.  
    24. int solution(vector<int> numbers, int target) {
    25. answer = 0;
    26. gNumbers = numbers;
    27. g_target = target;
    28. numbers_size = numbers.size();
    29. DFS(0,0);
    30.  
    31. return answer;
    32. }
    33.  
    34. int main()
    35. {
    36. vector<int> numbers = {1, 1, 1, 1, 1};
    37. cout << solution(numbers,3);
    38. }