반응형
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 |