타겟 넘버 (프로그래머스)

Namlulu·2022년 2월 13일
0

알고리즘

목록 보기
25/28
function solution(numbers, target) {
  const stack = [...numbers];
  const dist = Array.from(new Array(numbers.length), () => []);
  const init = 0;
  let index = numbers.length - 1;

  while (stack.length) {
    const stackPop = stack.pop();
    if (index === numbers.length - 1) {
      dist[index].push(init + stackPop);
      dist[index].push(init - stackPop);
    } else {
      for (let i of dist[index + 1]) {
        dist[index].push(i + stackPop);
        dist[index].push(i - stackPop);
      }
    }

    index = index - 1;
  }

  return dist[0].filter((v) => v === target).length;
}

=> 대표적인 DFS문제이다. 배열을 탐색하면서 모든 결과를 dist에 저장한다!

profile
Better then yesterday

0개의 댓글