반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Idea
BFS/DFS 문제는 최단거리냐 아니냐로 판단하는 편인데, 이 문제는 최단거리는 아니어서 DFS 방식으로 풀었다.
if (index == numbers.length) 여기에서 numbers.length - 1 이 아닌 이유는 마지막 인덱스를 탐색한 후에 더 이상 진행하지 않기 때문이다. index == numbers.length 는 배열의 끝을 넘어선 인덱스라는 의미로, 배열을 다 탐색한 후 종료 조건을 만족하고 재귀를 종료한다.
Code
class Solution {
int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers, target, 0, 0);
return answer;
}
private void dfs(int[] numbers, int target, int index, int sum) {
if (index == numbers.length) {
if (target == sum) {
answer++;
}
}
else {
dfs(numbers, target, index + 1, sum + numbers[index]);
dfs(numbers, target, index + 1, sum - numbers[index]);
}
}
}반응형
'Dev > Programmers' 카테고리의 다른 글
| [프로그래머스] 게임 맵 최단거리 (Java) (0) | 2024.12.17 |
|---|---|
| [프로그래머스] 네트워크 (Java) (1) | 2024.12.17 |
| [프로그래머스] H-Index (Java) (2) | 2024.12.16 |
| [프로그래머스] 가장 큰 수 (Java) (0) | 2024.12.16 |
| [프로그래머스] K번째수 (Java) (1) | 2024.12.16 |