https://programmers.co.kr/learn/courses/30/lessons/43165
function solution(numbers, target) {
var answer = {number: 0};
f(numbers, 0, 0, answer, target, "+");
f(numbers, 0, 0, answer, target, "-");
return answer.number;
}
function f(numbers, idx, result, answer, target, calc) {
if (calc === "+") {
result += numbers[idx];
} else if (calc === "-") {
result -= numbers[idx];
}
if (numbers.length - 1 === idx) {
if (result === target) {
answer.number++;
}
return;
}
f(numbers, idx+1, result, answer, target, "+");
f(numbers, idx+1, result, answer, target, "-");
return;
}
재귀로 풀었다. 좀 넘기는 인자가 많긴했으나 로직은 잘 나왔다.
DFS로도 한 번 더 풀어봐도 좋을 것 같다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][자바스크립트][Level2][카카오] 문자열 압축 (0) | 2021.07.22 |
---|---|
[프로그래머스][자바스크립트][Level2] 124 나라의 숫자 (0) | 2021.07.21 |
[프로그래머스][자바스크립트][Level2] 짝지어 제거하기 (0) | 2021.07.20 |
[프로그래머스][자바스크립트][Level2] 기능개발 (0) | 2021.06.30 |
[프로그래머스][자바스크립트][Level1] 폰켓몬 (0) | 2021.05.14 |
댓글