문제
제한사항
문제풀이
class Solution {
static int answer;
public void dfs(int[] numbers,int target,int idx,int sum){
if(idx == numbers.length){
if(sum == target) answer++;
return;
}
sum+=numbers[idx];
dfs(numbers,target,idx+1,sum);
sum-=numbers[idx]*2;
dfs(numbers,target,idx+1,sum);
}
public int solution(int[] numbers, int target) {
answer = 0;
dfs(numbers,target,0,0);
return answer;
}
}
※ 내 생각
이 문제는 DFS를 이용하는 문제입니다.
각각의 값에 대해서 더해주고,
빼주는 과정을 DFS를 이용해서 구현하면 됩니다.
DFS에서 numbers에 대한 값을 한번 더했으므로,
*2 만큼 빼줘야 그 값에 대해 뺀 값으로 처리가 가능합니다.