[Programmers] 타겟 넘버 - JavaScript

Joosi_Cool·2023년 3월 4일
0

Programmers

목록 보기
29/98
post-thumbnail
post-custom-banner

문제설명



설계 과정

DFS 자료구조 사용 -> 간단한 숫자의 형태이기 때문에 BFS보다 DFS가 효율적이라고 생각

  • DFS 함수 생성( len(몇번 더했는지), sum(이때까지의 합) )
  1. 만약 len가 입력값 숫자 배열의 길이와 같은지 체크
    같다면, sum가 target이 같은지 확인 -> 같다면 answer++;
    다르다면, 재귀함수 두개 호출
    1) DFS( len+1, sum+numbers[len])
    2) DFS( len+1, sum-numbers[len])
  • DFS(0,0)시작


초기 코드

function solution(numbers, target) {
    var answer = 0;
    var length = numbers.length;
    
    function DFS(len,sum){
        if(len===length){
            if(sum === target){
                answer++;
            }
        }
        else{
            return DFS(len+1,sum+numbers[len]),DFS(len+1,sum-numbers[len]);
        }
    }
    DFS(0,0);
    return answer;
}


결과



profile
집돌이 FE개발자의 노트
post-custom-banner

0개의 댓글