프로그래머스 (DFS/BFS) - 타겟넘버
해당 문제는 해당 깊이의 원소의 타겟을 우항으로 넘겨 새로운 타겟넘버를 생성하는 식으로 최종 깊이에서 결과가 0인 경우 1을 return하도록 하는 재귀를 통해 문제를 풀었습니다.
public int solution(int[] numbers, int target) {
return calculate(numbers, 0, target);
}
private int calculate(int[] numbers, int depth, int target) {
if (numbers.length == depth) {
return target == 0 ? 1 : 0;
}
int newPlusTarget = target + numbers[depth];
int newMinusTarget = target - numbers[depth];
return calculate(numbers, depth + 1, newPlusTarget) + calculate(numbers, depth + 1, newMinusTarget);
}
'정리 > 알고리즘' 카테고리의 다른 글
이분탐색 - 입국심사 (0) | 2022.03.14 |
---|---|
DFS - 여행경로 (0) | 2022.03.11 |
DP - 도둑질 (0) | 2022.03.09 |
DP - 등굣길 (0) | 2022.03.08 |
DP - 정수 삼각형 (0) | 2022.03.07 |
댓글