728x90
⬛ 프로그래머스 | LV.2 타겟 넘버 문제 - DFS 문풀
https://school.programmers.co.kr/learn/courses/30/lessons/43165
💚나의 풀이
- 일단 각 배열의 값의 순서는 조절 X
- 배열의 각 idx별 값은 1) 더하거나 2) 빼는 경우만 있다.
- dfs로 해당의 경우를 깊이 탐색하며 끝에 다다랐을 때의 sum 값이 target과 일치할 때만 answer++;처리
class Solution {
static int answer =0;
//dfs
static void dfs(int idx, int sum , int[] numbers, int target){
if(idx == numbers.length){
if(sum == target){
answer++;
}
}
else{
dfs(idx+1, sum+numbers[idx], numbers, target);
dfs(idx+1, sum-numbers[idx], numbers, target);
}
}
//솔루션 함수
public int solution(int[] numbers, int target) {
dfs(0, 0, numbers, target);
return answer;
}
}
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.2 게임 맵 최단 거리 - BFS 풀이 (Java) (0) | 2023.06.29 |
---|---|
프로그래머스 | LV.3 네트워크 문제 (DFS, BFS) (Java) (0) | 2023.06.29 |
프로그래머스 | LV.2 크기가 작은 부분 문자열 (Java) (0) | 2023.05.22 |
프로그래머스 | Lv.2 다음 큰 숫자 (Java) (0) | 2023.05.22 |
프로그래머스 | Lv2. 최솟값 만들기 (Java) (0) | 2023.05.20 |