[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/43165
[풀이]
단순한 dfs 문제.
numbers 배열 숫자에 대해서 + 또는 - 두 가지 경우가 존재한다.
[코드]
class Solution {
int ans;
public int solution(int[] numbers, int target) {
int answer = 0;
//숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return
dfs(0, numbers, 0, target);
answer = ans;
return answer;
}
public void dfs(int depth, int[] numbers, int now, int target){
if(depth==numbers.length){
if(now==target) ans++;
return;
}
dfs(depth+1, numbers, now+numbers[depth], target);
dfs(depth+1, numbers, now-numbers[depth], target);
return;
}
}
'알고리즘 공부 및 문제 풀이 > 프로그래머스(PRO)' 카테고리의 다른 글
[pro] 프로그래머스 level3 43238 입국심사 (Java) - 이분탐색 (0) | 2023.02.06 |
---|---|
[pro] 프로그래머스 level2 1844 게임 맵 최단거리 (Java) - BFS (0) | 2023.02.06 |
[pro] 프로그래머스 level4 42897 도둑질 (Java) - dp (0) | 2023.02.05 |
[pro] 프로그래머스 level3 42627 디스크 컨트롤러 (Java) - 힙(우선순위 큐) (0) | 2023.02.03 |
[pro] 프로그래머스 level3 12942 최적의 행렬 곱셈 - dp (0) | 2023.02.02 |