[콭] 타겟 넘버 DFS

강원지·2023년 2월 10일
0

코테 다시보기

목록 보기
11/22

코딩테스트 연습
깊이/너비 우선 탐색(DFS/BFS)
타겟 넘버

문제

숫자 배열을 적절히 더하고 뺀 값이 target이 되는 방법의 수를 구하여라.

로직

DFS를 이용하여 탐색을 하며 값을 계산.

BFS/DFS

재귀를 풀 때 주의할 점

  1. 종료조건
  2. 함수 파라미터와 전달인자

DFS javascript 코드

function solution(numbers, target) {
    var answer = 0;
    
    let len=numbers.length;
    const DFS=(L,sum)=>{
        if(L===len){
            if(sum===target){
              answer++;
              return;//생략 가능
            }
        }
        else{
            DFS(L+1,sum+numbers[L]);
            DFS(L+1,sum-numbers[L]);
        }
    }
    DFS(0,0)
    return answer;
}

-----------230219 다시 풀어봄---------------

DFS javascript 코드2

function solution(numbers, target) {
  var answer = 0;

  const DFS = (i, sum) => {
    if (i === numbers.length) { 
      if (sum === target) {
        answer++;
        return;
      }
      return;
    }
    DFS(i + 1, sum + numbers[i]);
    DFS(i + 1, sum - numbers[i]);

    return;
  }; 
  DFS(0, 0); 
  return answer;
} 

0개의 댓글