[프로그래머스] 타겟 넘버-JAVA
2022. 3. 9. 18:49ㆍ알고리즘/프로그래머스
반응형
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/43165
흔한 dfs문제이다.
재귀를 사용하여 numbers의 숫자를 더하거나 빼는 모든 경우의 수를 다 거쳐본다.
마지막 numbers 원소까지 연산이 끝났을 때, 총 연산값이 target과 일치하면 answer + 1
class Solution {
int answer = 0;
public void dfs(int[] num, int total, int depth, int target) {
if (depth == 0) {
if (total == target)
answer++;
return;
}
dfs(num, total + num[num.length - depth], depth - 1, target);
dfs(num, total - num[num.length - depth], depth - 1, target);
}
public int solution(int[] numbers, int target) {
dfs(numbers, 0, numbers.length, target);
return answer;
}
}
사실상 모든 연산의 종류를 다 돌아보는 완전탐색에 가깝다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 여행경로-JAVA (0) | 2022.03.09 |
---|---|
[프로그래머스] 네트워크-JAVA (0) | 2022.03.09 |
[프로그래머스] 등굣길 - JAVA (0) | 2022.03.04 |
[프로그래머스] 정수 삼각형-JAVA (0) | 2022.03.04 |
[프로그래머스] 섬 연결하기 - JAVA (2) | 2022.03.03 |