๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง  ์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํƒ€๊ฒŸ ๋„˜๋ฒ„ JS

by megan07 2023. 12. 27.

 

๐Ÿ’ก์ ‘๊ทผ ๋ฐฉ์‹

1. ์ˆซ์ž ์•ž์˜ ๋ถ€ํ˜ธ๋งŒ +,-๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค(์ด์ง„ํŠธ๋ฆฌ ์ƒ๊ฐํ•˜๊ธฐ)

2. dfs๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ฐพ์•„์ฃผ๊ธฐ

3. numbers์˜ ๋งˆ์ง€๋ง‰์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ return;

function solution(numbers, target) {
    let answer = 0;
    
    //level=numbers ๋ฐฐ์—ด ์š”์†Œ ์ธ๋ฑ์Šค(ํŠธ๋ฆฌ์—์„œ level)
    function dfs(level, sum){

		//ํƒˆ์ถœ ์กฐ๊ฑด
        if(level===numbers.length){
            if(sum===target){
                answer++;
            }
            
            return;
        }
        
        dfs(level+1, sum+numbers[level]);
        dfs(level+1, sum-numbers[level])
        
    }
    
    dfs(0,0);
    
    
    return answer;
}

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