[프로그래머스 | javascript] 타켓넘버 (dfs) : 재귀함수 사용

728x90
반응형

 

*문제 : numbers =[4,1,2,1,]  / target =4

 

이해가 안 되서 재귀함수를 직접 그려보니, 제대로 이해할 수 있었음

(1) 수행동작인 dfs 더하기 / 빼기 부분

(2) return 하는 조건 => 배열의 길이

(3) answer 계산하는 조건 => target값과 sum값이 같을 경우

 

 

 

 

(1) 내 풀이

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

 

 

끝.

반응형