728x90
코딩테스트 연습 - 타겟 넘버 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
class Solution {
int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers,0,target,0);
return answer;
}
public void dfs(int[] numbers, int depth, int target, int sum){
if(numbers.length == depth){
if(target==sum) answer++;
}else{
dfs(numbers,depth+1, target, sum+numbers[depth]);
dfs(numbers,depth+1, target, sum-numbers[depth]);
}
}
}
깊이우선 dfs를 이용
ex)
더보기
numbers = {4, 1, 2, 1}
target = 4
return = 2
depth = 1
sum
4 | -4 |
depth = 2
sum
5 | 3 | -3 | -5 |
depth = 3
sum
7 | 3 | 5 | 1 | -1 | -5 | -3 | -7 |
depth = 4
sum
8 | 6 | 4 | 2 | 6 | 4 | 2 | 0 | ........ | -8 |
728x90
'프로그래머스 & 백준' 카테고리의 다른 글
[프로그래머스/JAVA] - 네트워크(DFS) (0) | 2023.08.30 |
---|---|
[프로그래머스/JAVA] - 소수 찾기(완전탐색) (0) | 2023.08.28 |
[프로그래머스/JAVA] - 기능개발 (0) | 2023.07.10 |
[프로그래머스/JAVA] - 같은 숫자는 싫어 (0) | 2023.07.07 |
[프로그래머스/JAVA] - 전화번호 목록 (0) | 2023.07.04 |