타겟 넘버

Happhee·2022년 1월 27일
0

[ Lv2 ] programmers

목록 보기
1/32
post-thumbnail

📝 타겟 넘버

🖥 나의 JS 코드

첫번째 시도

dfs를 사용하여 해결한 코드이다
개념은 여기에 있다

function solution(numbers, target) {
    var answer = 0;
 
    
    function dfs(numbers, depth){
     
      if(numbers.length === depth){
          let sum= 0;
          for(const number of numbers){
          sum += number;
          }
          if(sum === target)
              answer++;
          return
      }
      else{ 
        //음수 , 양수를 바꿔가면서 numbers를 저장하고, 깊이를 늘려가며 탐색을 진행
          numbers[depth] *= -1;
          dfs(numbers, depth+1);

          numbers[depth] *= -1;
          dfs(numbers, depth+1);

      }
	}
    dfs(numbers, 0);
    return answer;
}

두번째 시도

function solution(numbers, target) {
    let count = 0;
    // 인자로 숫자 배열과 더한 값을 재귀로 넘겨받음
    function dfs(arrs, sum) {
        // 빈배열이면 깊이탐색이 끝난 것임을 의미
        if (arrs.length === 0) {
            // 더한 값이 target 과 같으면 count에 1을 더해줌
            if (target === sum)
                count++;
            // 재귀 종료
            return;
        }
        // 부호 바꿔가면서 깊이탐색 !!
        dfs(arrs.slice(1, arrs.length), sum + arrs[0]);
        dfs(arrs.slice(1, arrs.length), sum + (-1) * arrs[0]);
    }
    // 깊이 탐색 호출
    dfs(numbers, 0)
    // 결과값 반환
    return count;
}
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글