알고리즘 풀이/프로그래머스
[level2] 프로그래머스 - 타겟 넘버(JAVA)
데롱디롱
2021. 9. 14. 00:13
728x90
- dfs를 응용하여 각 숫자를 더했다가 빼보면 된다.
그러면 numbers의 숫자를 빼고 더하는 모든 경우의 수에 대해 탐색 가능!
class Solution {
static int answer = 0;
public int solution(int[] numbers, int target) {
makeTargetNum(numbers, target, 0, 0);
return answer;
}
static void makeTargetNum(int[] numbers, int target, int cnt, int sum) {
if(cnt == numbers.length) {
if(sum == target)
answer++;
return;
}
makeTargetNum(numbers, target, cnt + 1, sum - numbers[cnt]);
makeTargetNum(numbers, target, cnt + 1, sum + numbers[cnt]);
}
}