Problem Solving/Programmers
[프로그래머스 / JS] 타겟 넘버 - Level 2
애송이개발자
2023. 4. 13. 11:51
🚩 문제 주소
📄 접근 방법
그래프 탐색 - DFS
더보기
DFS 함수
탈출 조건
depth가 주어진 numbers배열의 길이와 같아지면 재귀를 종료합니다.
그런데 종료하기전에 조건을 하나 판단합니다.
- 지금까지 구한 숫자의 합이 주어진 target과 같다면 answer를 1 늘려줍니다.
종료 조건에 만족하지 않는다면 dfs 함수를 2번 씩 재귀 호출합니다.
depth를 1 늘려주고, 합에 숫자를 더하거나 뺍니다.
👨💻 나의 코드
function solution(numbers, target) {
let answer = 0;
const dfs = (depth, sum) => {
if (depth === numbers.length) {
if (sum === target) answer++;
return;
}
dfs(depth+1, sum+numbers[depth]);
dfs(depth+1, sum-numbers[depth]);
}
dfs(0, 0);
return answer;
}