본문 바로가기

프로그램 강좌

[프로그래머스]타겟 넘버 - javascript

예시)

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

주어진 숫자들을 더하고 빼서 타겟 값을 만드는게 목표입니다.
딱 문제를 보자마자 완전 탐색으로 풀어야겠구나가 떠올랐습니다.
기본으로 주어지는 var answer... 이상하게 거슬리네요.
굳이 고칠 필요는 없어보여서 그냥 냅뒀습니다.

function solution(numbers, target) {
    var answer = 0;

    function DFS(L, sum){
        if(L===numbers.length) {
            if(sum===target) answer++;
        } else {
            DFS(L+1, sum+numbers[L]);
            DFS(L+1, sum-numbers[L]);
        }
    }
    DFS(0,0);
    return answer;
}

 

728x90