![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bYtDWL/btrbtz5TzjF/5CfxrMwfT3NZztPjlw2xp0/img.png)
๋ฌธ์ n๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ nums์ ์ ์ target์ด ์ฃผ์ด์ก์ ๋, num์ ์๋ ์ ์ 4๊ฐ๋ฅผ ํฉํ์ฌ target์ ๋ง๋ค ์ ์๋ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ์์ค.๋จ, ์ ๋ต์๋ ๋์ผํ ์ ์ ์กฐํฉ์ด ์ฌ๋ฌ๊ฐ ํฌํจ๋์ด์๋ ์๋๋ค. ๋ฌธ์ ํ์ด ์ค๋ณต์ ํ๋ฝํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํ์ธํ ์ ์๋ ์ฒดํฌ ๋ฐฐ์ด์ ์์ฑ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ ์ ์กฐํฉ์ ์ฌ๋ฌ๊ฐ ํฌํจ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์๋ณํ ์ ์๋ ๋ณ๋์ ๋ณ์ ์ ์ธ ๊น์ด ํ์์ ํตํด ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์กฐํฉ์ ์ ๋ต ๋ฆฌ์คํธ์ ํฌํจ์ํค๊ณ , ์ฒ์ ์ฌ๊ท๋ฅผ ์์ํ ๋ ํด๋น ์ ๋ต ๋ฆฌ์คํธ์ ํ์ฌ ๊ฒ์ฌํ๋ ์กฐํฉ์ด ํฌํจ๋์ด ์๋์ง ๊ฒ์ฌ_์กฐํฉ์ ์์๋ฅผ ๊ณ ๋ คํ์ง ์๊ธฐ ๋๋ฌธ์ ํ๊ณ , ์๋ค๋ฉด ๊ทธ๋๋ก ํจ์๋ฅผ ์ข ๋ฃ ์ฒ์์๋ 3๋ฒ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๊ธฐ ์ํด forEach ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ๋ ค๊ณ ํ์ง๋ง..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tCcW2/btrbpOJrYY0/q6TrBDk5Lnmf5dZOX42NRK/img.png)
๋ฌธ์ ๋ฌธ์ ํ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ ํด๋น ๊ณต์์ด ์ด๋ป๊ฒ ์ฑ๋ฆฝ์ด ๋๋์ง ์ดํด ๋ณด์. ์๋ฅผ ๋ค์ด 5๊ฐ์ ๊ฒฝ์ฐ์ ์ค 3๊ฐ๋ฅผ ๋ฝ๋๋ค๊ณ ๊ฐ์ ํด ๋ณด์. ์ด๋ ๊ฐ์ฅ ํฐ ๊ฐ์ธ 5(n)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ดค์ ๋, ์กฐํฉ์ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ ํฌ๊ฒ 5๋ฅผ ํฌํจํ ๊ฒฝ์ฐ์ 5๋ฅผ ํฌํจํ์ง ์์ ๊ฒฝ์ฐ์ธ 2๊ฐ์ง๋ก ๋๋๋ค. 5๋ฅผ ํฌํจํ ๊ฒฝ์ฐ์๋ ๋จ์ 4๊ฐ์ ๊ฒฝ์ฐ์ ์ค ๋๋จธ์ง ์๋ฆฌ 2๊ฐ(r-1)๋ฅผ ๋ฝ๊ณ 5๋ฅผ ํฌํจํ์ง ์์ ๊ฒฝ์ฐ์๋ ๋จ์ 4๊ฐ ๊ฒฝ์ฐ์ ์ค ๋๋จธ์ง 3๊ฐ(r)๊ฐ๋ฅผ ๋ฝ์ ๊ฒ์ด๋ค. ์ฝ๋ function solution(n, r) { let answer = 0; function DFS(n , r) { if(n === r || r === 0) return 1; //๋์ฌ ์ ์๋ ๊ฐ์ฅ ์์ ๊ฒฝ์ฐ์ 1์ ๋ฐํ else return DFS(n ..
๋ฌธ์ 10์ดํ์ N๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๋ฉด ์ด ์ค M๊ฐ๋ฅผ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํฉ๋๋ค. ๋ฌธ์ ํ์ด ์ค๋ณต์ ํ๋ฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์ฒดํฌ ๋ฐฐ์ด์ ๋ง๋ค์ด ์ด์ ์ ์ฐธ์กฐํ๋ value์ผ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ์ํํ์ง ์๋๋ก ํ๋ค. ์ฝ๋ function solution(m, arr) { let answer = []; let n = arr.length; let tmp = Array.from({length: m}, () => 0); let ch = Array.from({length: n}, () => 0); function DFS(L) { if(L === m) { answer.push(tmp.slice()); } else { for(let i = 0; i < n; i++) { if(ch[i] === 0) ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/0inJt/btrbodPBbWv/XyfH4lsaETqVnSr4nN5yG0/img.png)
๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๋จ์์ ๋์ ๋ค์ด ์ฃผ์ด์ ธ ์์๋ ๊ฑฐ์ค๋ฆ๋์ ๊ฐ์ฅ ์ ์ ์์ ๋์ ์ผ๋ก ๊ตํํด์ฃผ๋ ค๋ฉด ์ด๋ป๊ฒ ์ฃผ๋ฉด ๋๋๊ฐ?๊ฐ ๋จ์์ ๋์ ์ ๋ฌดํ์ ์ธ ์ ์๋ค. ๋ฌธ์ ํ์ด ์ฝ๋ function solution(arr, m) { let answer = Number.MAX_SAFE_INTEGER; let n = arr.length; function DFS(L, sum) { if(sum > m) return; //๊ฑฐ์ค๋ฆ๋ ๊ธ์ก์ ํฉ์ฐ ๊ธ์ก์ด ๋์ด์ฐ์ ๊ฒฝ์ฐ if(sum === m) { answer = Math.min(answer, L); } else { for(let i = 0; i < n; i++) { DFS(L + 1, sum + arr[i]); } } } DFS(0, 0); return answer; } c..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/0Fovj/btrblj32gc2/PIY7rwgjfBw50UL4Xqw9w1/img.png)
๋ฌธ์ 1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ์ ํ ๊ตฌ์ฌ์ด ์์ต๋๋ค. ์ด ์ค ์ค๋ณต์ ํ๋ฝํ์ฌ M๋ฒ์ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ถ๋ ฅํฉ๋๋ค. ๋ฌธ์ ํ์ด ๋ค์ค for๋ฌธ๊ณผ ์ฌ๊ท์ ์ฐจ์ด ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํตํด DFS ํ์์ ํ๋ ๊ฒ์ ๋ค์ค for๋ฌธ์ ํ๋ ๊ฒ๊ณผ ์ ์ฒด์ ์ธ ๋์ ๋ฐฉ์์ด ๋๊ฐ๋ค.ํ์ง๋ง ์ ํด๋น ๋ฌธ์ ์์ ์ค๋ณต์์ด์ ๊ตฌํ ๋ ๋ค์ค for๋ฌธ์ด ์๋ ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ์ง๋ ๋ค์ ์ฝ๋๋ฅผ ํตํด ํ์ธํ ์ ์๋ค. function solution(n , m) { let answer = []; for(let i = 1; i
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/p1c1G/btrbljVy33g/89EGPTaRakyWiMoETIz590/img.png)
๋ฌธ์ ์ด๋ฒ ์ ๋ณด์ฌ๋ฆผํผ์๋ ๋ํ์์ ์ข์ ์ฑ์ ์ ๋ด๊ธฐ ์ํ์ฌ ํ์๋ ์ ์๋์ด ์ฃผ์ N๊ฐ์ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค.๊ฐ ๋ฌธ์ ๋ ๊ทธ๊ฒ์ ํ์์ ๋ ์ป๋ ์ ์์ ํธ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ฃผ์ด์ง๊ฒ ๋ฉ๋๋ค.์ ํ์๊ฐ M์์ N๊ฐ์ ๋ฌธ์ ์ค ์ต๋์ ์๋ฅผ ์ป์ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค.(ํด๋น๋ฌธ์ ๋ ํด๋น์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉด ํธ๋ ๊ฑธ๋ก ๊ฐ์ฃผํ๋ค. ํ ์ ํ ๋น ํ ๊ฐ๋ง ํ ์ ์์ต๋๋ค) ๋ฌธ์ ํ์ด ์ฝ๋ function solution(limit, arr) { let answer = Number.MIN_SAFE_INTEGER; let n = arr.length; function DFS(level, time, sum) { if(level === n) { if(time > limit) return; //์ ํ ์๊ฐ์ ์ด๊ณผํ์ ๊ฒฝ์ฐ answer = Ma..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/csDkrJ/btraRwOURzi/cirKJCFSDcYbJo92nhBiM0/img.jpg)
๋ฌธ์ N๊ฐ์ ์์๋ก ๊ตฌ์ฑ๋ ์์ฐ์ ์งํฉ์ด ์ฃผ์ด์ง๋ฉด, ์ด ์งํฉ์ ๋ ๊ฐ์ ๋ถ๋ถ์งํฉ์ผ๋ก ๋๋์์ ๋ ๋ ๋ถ๋ถ์งํฉ์ ์์์ ํฉ์ด ์๋ก ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ฉด “YES"๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ”NO"๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋๋ก ๋๋๋ ๋ ๋ถ๋ถ์งํฉ์ ์๋ก์ ์งํฉ์ด๋ฉฐ, ๋ ๋ถ๋ถ์งํฉ์ ํฉํ๋ฉด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์๋์ ์งํฉ์ด ๋์ด ํฉ๋๋ค. ์๋ฅผ ๋ค์ด {1, 3, 5, 6, 7, 10}์ด ์ ๋ ฅ๋๋ฉด {1, 3, 5, 7} = {6, 10} ์ผ๋ก ๋ ๋ถ๋ถ์งํฉ์ ํฉ์ด 16์ผ๋ก ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์ ์ ์๋ค. ๋ฌธ์ ํ์ด_๋ฌถ์ ๊ธฐ์ค ๋ฌถ์ ๊ฒฝ์ฐ์ ๋ฌถ์ง ์์ ๊ฒฝ์ฐ ๋ ๊ฐ๋ก ๋๋ ๋ค์ ๋ ๋ฒจ๋ก ์ด๋ depth๋ฅผ ๋์ด์ค ๊ฒฝ์ฐ ํ์ ์ข ๋ฃ ๋ฐ ๋๋ ๋ ์งํฉ์ ๋น๊ต ์ฝ๋ function solution(d, n) { le..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kPt3i/btraSYYxGlF/NkseLXUjvcWiYGYLUtxJGK/img.png)
๋ฌธ์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด 1๋ถํฐ N๊ฐ๊น์ง์ ์์๋ฅผ ๊ฐ๋ ์งํฉ์ ๋ถ๋ถ์งํฉ์ ๋ชจ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋ฌธ์ ํ์ด ์์๊ฐ ํฌํจ๋๋(1) ํฌํจ๋์ง ์๋๋(0)์ ๋ฐ๋ผ ๋ ๊ฐ์ ์ผ๋ก ๋๋ ์์ฐ์ N๊ฐ๊น์ง ํ์์ ๊ณ์ ํ๊ณ N์ ๋ฒ์๋ฅผ ๋์ด์๊ฒ ๋๋ฉด ํ์์ ์ข ๋ฃ ๋ฐ ๋ถ๋ถ์งํฉ ์ถ๋ ฅ ๋ถ๋ถ์งํฉ์ ์ถ๋ ฅํ๊ธฐ ์ํด์ ์ง๊ธ๊น์ง ํ์ ํ๋ ์์๋ค์ด ํฌํจ์ธ์ง ๋ฏธํฌํจ์ธ์ง ์ฒดํฌํด๋ ๋ณ๋์ ๋ณ์ ํ์ ์ฝ๋ function solution(n) { let answer = []; let check = Array.from({length: n + 1}, () => 0); //ํฌํจ์ธ์ง ๋ฏธํฌํจ์ธ์ง ์ฒดํฌํ๋ ๋ฐฐ์ด(์์ฐ์ 1๋ถํฐ ์์์ด๊ธฐ ๋๋ฌธ์ ์ฒดํฌ ๋ฐฐ์ด ๋ํ 1๊ฐ์ฐ) function DFS(v) { if(v === n + 1) { //N..