새소식

알고리즘 테스트 ⏲/프로그래머스

[프로그래머스] 타겟 넘버 풀이 / JavaScript

  • -
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

작성 코드 (1차 시도 / 통과)

function solution(numbers, target) {
    let result = 0
    const dfs = (idx, accr) => {
        if (idx === numbers.length) return accr === target ? ++result : 1
        dfs(idx + 1, accr + numbers[idx])
        dfs(idx + 1, accr - numbers[idx])
    }
    return dfs(0, 0) || result
}

 

구현 로직 (DFS)

1. 재귀형 DFS 선언

2. numbers 배열을 하나씩 +한 값과 -한 값을 현재 축적값(accr)에 연산하고 다시 DFS로 진입.

3. numbers 의 마지막 값인 경우 target과 일치하면 결과를 +1

4. dfs 초기 실행 후 결과값 반환

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.