Level
프로그래머스 Lv2
function solution(numbers, target) {
  let answer = 0;

  const stack = [
    [numbers[0], 0],
    [-numbers[0], 0],
  ];
  while (stack.length) {
    let [sum, index] = stack.pop();

    index += 1;
    const next = numbers[index];

    if (index < numbers.length) {
      stack.push([sum + next, index]);
      stack.push([sum - next, index]);
    } else {
      sum === target && answer++;
    }
  }
  return answer;
}