2022-12-28 18:58:49 +09:00
|
|
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/43165
|
|
|
|
|
|
2022-12-28 19:06:56 +09:00
|
|
|
import java.util.Arrays;
|
2022-12-28 18:58:49 +09:00
|
|
|
class Solution {
|
2022-12-28 19:06:56 +09:00
|
|
|
//DFS
|
|
|
|
|
private int dfs(int[] numbers, int target, int depth){
|
|
|
|
|
int res = 0;
|
|
|
|
|
if(depth == numbers.length){
|
|
|
|
|
// System.out.println(Arrays.toString(numbers));
|
|
|
|
|
if(Arrays.stream(numbers).sum() == target) return 1;
|
|
|
|
|
else return 0;
|
|
|
|
|
} else{
|
|
|
|
|
res += dfs(numbers, target, depth+1);
|
|
|
|
|
numbers[depth] *= -1;
|
|
|
|
|
res += dfs(numbers, target, depth+1);
|
|
|
|
|
return res;
|
2022-12-28 18:58:49 +09:00
|
|
|
}
|
2022-12-28 19:06:56 +09:00
|
|
|
}
|
|
|
|
|
public int solution(int[] numbers, int target) {
|
|
|
|
|
return dfs(numbers, target,0);
|
2022-12-28 18:58:49 +09:00
|
|
|
}
|
|
|
|
|
}
|