문제
코드
#include <string>
#include <vector>
#include <iostream>
using namespace std;
void getSolutionNum(vector<int> v, int target, int sum, int start, int &result) {
if (start == v.size()) {
if (sum == target) {
result++;
}
return;
}
getSolutionNum(v, target, sum + v[start], start + 1, result);
getSolutionNum(v, target, sum - v[start], start + 1, result);
}
int solution(vector<int> numbers, int target) {
int answer = 0;
getSolutionNum(numbers, target, 0, 0, answer);
return answer;
}
int main()
{
cout << solution({ 1, 1, 1, 1, 1 }, 3) << endl;
}
- 주어진 배열의 갯수의 동일한 횟수로 뺄셈, 덧셈 각각을 진행한다.
- 마지막 횟수에서 주어진 합(target)이 동일하면 횟수를 count 한다.