DFS를 이용하여 완전탐색하여 목표수가 나올때마다 카운트해주었다. 항상 방향탐색만하다가 기본기 문제를 풀어서 살짝 당황했다. 기본부터 다시하자!!
#include <string>
#include <vector>
#include<iostream>
using namespace std;
int answer = 0;
void dfs(vector<int> numbers,int cnt, int sum,int target) {
if (cnt == numbers.size() ) {
if(sum == target) answer++;
return;
}
dfs(numbers, cnt+1, sum + numbers[cnt], target);
dfs(numbers, cnt+1, sum - numbers[cnt], target);
}
int solution(vector<int> numbers, int target) {
dfs(numbers,0, 0,target);
cout << answer;
return answer;
}
int main() {
solution({ 1,1,1,1,1 }, 3);
return 0;
}