반응형
1. 문제 정의
2. 문제 접근
dfs를 통해 더하는 것과 빼는 것의 모든 경우를 구하면 될 것 같다.
3. 문제 풀이
- dfs를 통해 모든 경우를 다 구한다.
- target 이랑 값을 비교해 본다.
4. 코드
class Solution {
int cnt = 0;
public int solution(int[] numbers, int target) {
int answer = 0;
dfs(numbers, 0, target, 0);
answer = cnt;
return answer;
}
private void dfs(int[] numbers, int depth, int target, int result){
if(numbers.length == depth){
if (target == result) cnt++;
} else {
int plus = result + numbers[depth];
int minus = result - numbers[depth];
dfs(numbers, depth+1, target, plus);
dfs(numbers, depth+1, target, minus);
}
}
}
5. 회고
저번 시간에 이어 똑같이 dfs 관련 문제였다. 단순히 2가지 경우에 대하여 모든 경우를 구해주면 된다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
99클럽 코테 스터디 14일차 TIL, 탐욕법(조이스틱) (1) | 2024.06.04 |
---|---|
99클럽 코테 스터디 10일차 TIL, DFS,BFS(게임 맵 최단 거리) (0) | 2024.05.31 |
99클럽 코테 스터디 8일차 TIL, 완전탐색(소수 찾기) (0) | 2024.05.29 |
99클럽 코테 스터디 7일차 TIL, 완전탐색(카펫) (0) | 2024.05.28 |
99클럽 코테 스터디 5일차 TIL, 정렬(가장 큰 수) (0) | 2024.05.26 |