[etc] DFS 깊이 우선 탐색 - 타켓넘버


타켓 넘버

img

규칙

DFS는 스택, BFS는 큐를 이용하여 문제를 푼다는것을 보고

재귀함수를 사용하지 않고 스택으로 어떻게던 완전탐색해보려고 했는데 결국에 실패

결국에 재귀함수로 풀었는데

설명은 아래 사진

img

내풀이


function solution(numbers, target){
    let answer = 0;
  
    function dfs(depth, sum){
      if (depth === numbers.length){
        if (sum === target){
          answer++;
        }
        return;
      }
      dfs(depth + 1, sum + numbers[depth]); // 왼쪽
      dfs(depth + 1, sum - numbers[depth]); // 오른쪽
    }
    dfs(0, 0);
    return answer;
}






© 2017. by isme2n