PS/프로그래머스

[Level2][Javascript] 타겟 넘버

returnzero 2022. 6. 27. 22:03
function solution(numbers, target) {
    var answer = 0;
    let Stack=[0];
    while(numbers.length){
        let a= numbers.pop()
        let left=Stack.map(e => (e-a));
        let right= Stack.map(e => (e+a));
        Stack=[...left, ...right];
    }
    // console.log(Stack);
    answer = Stack.filter(e=>e===target).length;
    return answer;
}

JS를 집중적으로 팠더니 신기한 풀이가 생각났다. 역시 재귀로 짜는 것보단 while로 짜는게 편하다. 

그리고 하나로 합칠때 spread operator 사용이 편하다.