[Programmers] 깊이/너비 우선 탐색(DFS/BFS) - 타겟 넘버

zzenee·2022년 5월 10일
0

Algorithm&Coding-test

목록 보기
17/30
post-thumbnail

Problem

Code

class Solution {
    static int result = 0;
    public void dfs(int[] numbers, int depth, int sum, int target) {
        if (depth == numbers.length) {
            if (sum == target) {
               result++;
            } else return;
        } else {
            dfs(numbers, depth+1, sum+numbers[depth], target); // 숫자를 더하는 경우
            dfs(numbers, depth+1, sum-numbers[depth], target); // 숫자를 빼는 경우
        }
        
    }
    
    
    public int solution(int[] numbers, int target) {
        dfs(numbers, 0, 0, target);
        return result;
    }
}

Note

DFS 방식 이용
numbers에 있는 숫자들을 더하고 빼는 2가지 경우로 뻗어나감
-> numbers에 있는 모든 숫자들을 다 사용하면 target과 비교

profile
꾸준히

0개의 댓글