Programmers/Level2

타겟 넘버

zzunsik 2021. 7. 12. 01:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
    
    public int TargetDFS(int[] num, int i, int target, int value) {
        // 마지막 배열을 입력했을 때
        if (i == num.length - 1) {
            if (value == target)
                return 1;
            else
                return 0;
        } else {
            return TargetDFS(num, i + 1, target, value + num[i + 1]) + TargetDFS(num, i + 1, target, value - num[i + 1]);
        }
    }
    
    public int solution(int[] numbers, int target) {
        int answer = 0;
        answer = TargetDFS(numbers, 0, target, numbers[0]) + TargetDFS(numbers, 0, target, -numbers[0]);
        return answer;
    }
}
cs

더했을 경우, 뺐을 경우를 나눠서 DFS 탐색을 수행하였다.