새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/JavaScript

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

by 언호 2022. 5. 5.

📖 문제


🧑🏻‍💻 풀이 과정

1) 문제 접근 및 이해

DFS 탐색을 실시하여, 각 숫자를 더하거나 빼면서 재귀로 탐색하였습니다.

2) 알고리즘

  • DFS
  • 재귀

3) 풀이 코드

사용 언어 - JavaScript

function solution(numbers, target) {
  let answer = 0                      // 정답 변수
  
  function dfs(n, ans) {              // dfs 탐색 함수
    if (n >= numbers.length) {        // numbers 길이만큼 탐색 했다면
      if (ans === target) {           // 현재까지 정답이 타겟 숫자와 동일하면
          answer++                    // 정답 증가
      }
      return
    }    
      
    dfs(n + 1, ans + numbers[n])      // 현재 숫자를 더하기
    dfs(n + 1, ans - numbers[n])      // 현재 숫자를 빼기
  }
  
  dfs(0, 0)                           // dfs 탐색
      
  return answer;
}

🔗 문제 링크

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

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

댓글