https://school.programmers.co.kr/learn/courses/30/lessons/43165
numbers의 숫자들을 + 또는 - 를 하여 target의 숫자를 만드는 문제
class Solution {
static int sum = 0;
static int index = 0;
static int answer;
public int solution(int[] numbers, int target) {
dfs(numbers, target, index, sum);
return answer;
}
public void dfs(int[] numbers, int target, int index, int sum) {
if (index == numbers.length) {
if (sum == target) answer++;
} else {
dfs(numbers, target, index + 1, sum + numbers[index]);
dfs(numbers, target, index + 1, sum - numbers[index]);
}
}
}
처음 숫자부터 index를 하나씩 증가시켜 +와 -를 하여 마지막에 숫자들의 합인 sum이 target이 되는 경우 answer를 증가하여 문제를 해결하였다.
'Programmers' 카테고리의 다른 글
[프로그래머스][JAVA]Lv. 2 - 방문 길이 (0) | 2023.07.17 |
---|---|
[프로그래머스][JAVA]Lv. 2 - 스킬트리 (0) | 2023.07.17 |
[프로그래머스][JAVA]Lv. 2 - 오픈채팅방 (0) | 2023.07.02 |
[프로그래머스][JAVA]Lv. 2 - 구명보트 (0) | 2023.06.18 |
[프로그래머스][JAVA]Lv. 2 - 큰 수 만들기 (0) | 2023.06.18 |