알고리즘/부르트포스

[프로그래머스] Level2 : 타겟 넘버 (JAVA)

믕비 2025. 4. 26. 00:19
반응형

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[풀이과정]

처음엔 visited를 사용해서 -로 사용할 부분을 체크해서 계산했는데, 이렇게 되면 같은 케이스인데 다르게 취급되어서 중복된 값처리가 이루어지는 로직이었다.

그냥 단순하게 풀면 되는 거였음.. 생각을 깊게 하고 버릇처럼 코드 짜는 걸 반성했다.

 

[코드]

import java.io.*;

class Solution {
    static int cntNumbers, answer, targetNum;
    public int solution(int[] numbers, int target) {
        answer = 0;
        targetNum = target;
        cntNumbers = numbers.length;

        DFS(numbers, 0, 0);
        
        return answer;
    }
    
    static void DFS(int[] numbers, int depth, int sum){
        if(depth == cntNumbers){
            if(sum == targetNum){
                answer++;
            }
            return;
        }

        DFS(numbers, depth+1, sum+numbers[depth]);
        DFS(numbers, depth+1, sum-numbers[depth]);

    }
}

반응형

'알고리즘 > 부르트포스' 카테고리의 다른 글

[백준] 9095 : 1, 2, 3 더하기  (0) 2023.04.10
[백준] 1748 : 수 이어쓰기 1  (0) 2023.04.09
[백준] 6064 : 카잉 달력  (0) 2023.04.09
[백준] 1107 : 리모컨  (0) 2023.04.07
[백준] 1476 : 날짜계산  (0) 2023.04.07