🚩 문제 주소
📄 접근 방법
그래프 탐색 - 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;
}
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스 / JS] 배열 조각하기 - Level 0 (0) | 2023.04.21 |
---|---|
[프로그래머스 / JS] 게임 맵 최단거리 - Level 2 (1) | 2023.04.17 |
[프로그래머스 / JS] 공원 산책 - Level 1 (0) | 2023.04.08 |
[프로그래머스 / JS] 올바른 괄호 - Level 2 (0) | 2023.04.04 |
[프로그래머스 / JS] 추억 점수 - Level 1 (0) | 2023.04.02 |