문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1 번째 시도
- DFS 이용
- 마지막 노드까지 도착했을 때 타켓 숫자면 카운팅
- DFS 파라미터에 들어가야 할 것들
- DFS 실행시킬 배열
- 깊이
- 타켓 넘버
- 이전합
//dfs로 플러스 마이너스 다 붙여가며 해당 숫자 카운트
import java.util.*;
class Solution {
int answer = 0;
public int solution(int[] numbers, int target) {
dfs(numbers, 0, target, 0);
return answer;
}
void dfs(int[] numbers, int depth, int target, int exSum) {
if(depth == numbers.length) {
if(target == exSum) {
answer++;
}
}
else {
dfs(numbers,depth+1, target, exSum+numbers[depth]);
dfs(numbers,depth+1, target, exSum-numbers[depth]);
}
}
}
배움
- dfs는 꼭 for 문을 사용해야 한다는 잘못된 생각을 깨줌
'알고리즘 > 브루트포스' 카테고리의 다른 글
[백준 15684] 사다리 조작 / 자바 / 브루트포스 + 약간의 구현 (0) | 2024.08.04 |
---|---|
[백준 15683] 감시 / 자바 / 브루트 포스(그래프 순회) (0) | 2024.05.30 |
[백준] 2048(Easy) / 자바(feat 브루트 포스, 백트래킹, DFS 차이점) (0) | 2024.05.23 |
[백준 15686] 치킨배달/ 자바 / 브루트 포스(그래프순회) (0) | 2024.05.21 |
[백준] 연구소 / 자바 / 브루트포스(그래프 순회) (0) | 2024.05.08 |