알고리즘 문제풀이/프로그래머스

타겟 넘버 / js 풀이

Heman 2021. 7. 8. 16:31

프로그래머스 : 타겟 넘버

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

문제풀이

이번 문제는 DFS/BFS 관련 문제입니다.

풀이 자체는 간단하지만, 고민을 했던 문제였고 최종적으로는 다른 풀이를 참고했습니다.

풀이는 재귀적 방식으로 주어진 배열의 길이만큼 +와 -연산을 했을 때, 타겟 넘버가 되는 시점을 찾으면 됩니다. 

 

코드

function solution(numbers, target) {
    let answer = 0;
    
    function dfs(index, sum){
        if(index === numbers.length){
            if(target === sum) answer++;
            return;
        }
        
        dfs(index+1, sum+numbers[index]);
        dfs(index+1, sum-numbers[index]);
    }
    
    dfs(0,0);
    return answer;
}

 

리뷰

DFS 관련 문제 중에서 쉬운편에 속해 보였는데, 너무 오랜만에 푸는 문제 유형이라 아직 머리가 적응을 못했던 것 같습니다.

알고리즘 문제에서 재귀를 사용하는 것은 빈번하니 이번 기회에 다시 감을 잡기 위해 공부해야 될 것 같습니다 ㅜㅜ