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

Yongwoo Cho·2021년 10월 15일
0

알고리즘

목록 보기
13/104
post-thumbnail

📌 문제

https://programmers.co.kr/learn/courses/30/lessons/43165

📌 풀이

function solution(numbers, target) {
  let cnt = 0;

  function dfs(level, sum) {
    if (level === numbers.length) {
      if (sum === target) {
        cnt++;
      }
      return;
    }
    dfs(level + 1, sum + numbers[level]);
    dfs(level + 1, sum - numbers[level]);
  }

  dfs(0, 0);

  return cnt;
}

✔ 알고리즘 : DFS

✔ 레벨을 증가시켜주면서 numbers[level]을 더하는 경우, 빼는 경우로 dfs 두번 탐색

❗ numbers 배열에 있는 모든 수를 활용하여 target 을 맞춰야함
ex) [1 1 1 1 1 ] , target : 3일때
1 + 1 + 1 은 count 하지 않음

✔ 난이도 : 프로그래머스 기준 LEVEL 2

profile
Frontend 개발자입니다 😎

0개의 댓글