‡ CODING TEST STUDY ‡/º 프로그래머스

[프로그래머스 | Java Lv.2] 타겟 넘버

Trudy | 송연 2024. 5. 15. 23:49

문제

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

dfs/bfs 문제는 감만 익히면 코드가 정말 간단해서 좋은데 dfs/bfs라는 것을 인지 못하면.. 더러운 길로 갈 수 있음

제발 이젠 외워 어떻게 푸는 지

 

최종코드 

package week3.baek.dfsbfs;

public class Ex1 {
    int answer = 0;

    public int solution(int[] numbers, int target) {
        dfs(numbers, target, 0, 0);

        return answer;
    }

    public void dfs(int[] numbers, int target, int depth, int sum){
        System.out.print("depth = " + depth);
        System.out.println("sum = " + sum);

        if(depth == numbers.length){
            if(target == sum) answer++;
        }

        else{
            dfs(numbers, target, depth+1, sum + numbers[depth]);
            dfs(numbers, target, depth+1, sum - numbers[depth]);
        }
    }
}

class Ex1Main{
    public static void main(String[] args) {
        Ex1 ex1 = new Ex1();
        int[] numbers = {1, 1, 1, 1, 1};
        int target =3;
        System.out.println(ex1.solution(numbers, target));
    }
}

참고

https://hyojun.tistory.com/entry/Programmers-%ED%83%80%EA%B2%9F-%EB%84%98%EB%B2%84-Java