https://school.programmers.co.kr/learn/courses/30/lessons/43165
역시나 전형적인 DFS 문제.
numbers에 있는 값을 더하는 로직 1개와 빼주는 로직 1개를 같이 호출해주고,
모든 숫자에 대한 처리가 끝났을 때 target 넘버와 비교하면 끝.
class Solution {
int answer = 0;
public int solution(int[] numbers, int target) {
calc(numbers, target, 0, 0);
return answer;
}
void calc(int[] numbers, int target, int idx, int sum) {
if (idx == numbers.length) {
if (target == sum) answer++;
return;
}
calc(numbers, target, idx + 1, sum + numbers[idx]);
calc(numbers, target, idx + 1, sum - numbers[idx]);
}
}
'코딩테스트 > programmers' 카테고리의 다른 글
k진수에서 소수 개수 구하기 (0) | 2023.10.16 |
---|---|
전화번호 목록 (0) | 2023.10.16 |
피로도 (0) | 2023.10.16 |
뉴스 클러스터링 (0) | 2023.10.16 |
프로세스 (0) | 2023.10.12 |