🎈 문제
문제링크
🎈 제한 사항
🎈 접근방법
- DFS를 이용하였다.
- DFS를 돌면서 깊이가 주어진 numbers의 길이 일때 종료 조건을 넣는다.
- 종료조건이 만족할 때 sum이 target과 같으면 answer +1를 해준다.
- sum에 해당 숫자를 더한 값 DFS, 뺀 값 DFS를 돌린다.
🎈 코드
class Solution {
static int answer=0;
public int solution(int[] numbers, int target) {
dfs(0,0,target,numbers);
return answer;
}
static void dfs(int depth, int sum, int target, int[] numbers){
if(depth == numbers.length){
if(sum == target){
answer++;
}
return;
}
dfs(depth+1, sum+numbers[depth], target, numbers);
dfs(depth+1, sum-numbers[depth], target, numbers);
}
}