๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

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

์„ ๋‹ฌ 2023. 5. 23. 23:09
๋ฐ˜์‘ํ˜•

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ’€์ด

์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ dfs๋กœ ํ’€์ดํ•˜์˜€๋‹ค.

let answer = 0;

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

function solution(numbers, target) {
    dfs(0, 0, numbers, target);
    
    return answer;
}
๋ฐ˜์‘ํ˜•