Java/Programmers

[Lv.2]타겟 넘버

GLOWWW 2023. 2. 23. 19:41

그래프를 이용한 탐색(DFS, BFS)를 활용하여 푸는 문제이다. 이 문제는 dfs를 활용하여 풀면 되는 문제이다.

가장 간단한 문제이므로 탐색에 대한 개념이 있다면, 어렵지 않게 풀 수 있다. 그러나 그것이 나에게는 해당하지 않았지...

아래의 링크는 그래프를 이용한 탐색(DFS, BFS)를 공부한 내용이다.

package Lv_2;

public class 타겟넘버 {
    static int answer = 0;
    public static int solution(int[] numbers, int target) {
        dfs(numbers, 0, target, 0);
        return answer;
    }
    public static void dfs(int[] numbers, int depth, int target, int sum) {
        System.out.println(sum);
        if (depth == numbers.length) {
            if (target == sum) {
                answer++;
            }
        } else {
            dfs(numbers, depth + 1, target, sum + numbers[depth]);
            dfs(numbers, depth + 1, target, sum - numbers[depth]);
        }
    }

    public static void main(String[] args) {
        int[] numbers = {1, 1, 1, 1, 1};
        int target = 3;
        int result = solution(numbers, target);
        System.out.println("결과는 = " + result);
    }
}