[DFS]์ตœ๋Œ€ ์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ์ด๋ฒˆ ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ ๋Œ€ํšŒ์—์„œ ์ข‹์€ ์„ฑ์ ์„ ๋‚ด๊ธฐ ์œ„ํ•˜์—ฌ ํ˜„์ˆ˜๋Š” ์„ ์ƒ๋‹˜์ด ์ฃผ์‹  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..

[DFS]ํ•ฉ์ด ๊ฐ™์€ ๋ถ€๋ถ„์ง‘ํ•ฉ

๋ฌธ์ œ N๊ฐœ์˜ ์›์†Œ๋กœ ๊ตฌ์„ฑ๋œ ์ž์—ฐ์ˆ˜ ์ง‘ํ•ฉ์ด ์ฃผ์–ด์ง€๋ฉด, ์ด ์ง‘ํ•ฉ์„ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‘ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ์›์†Œ์˜ ํ•ฉ์ด ์„œ๋กœ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๋ฉด “YES"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ”NO"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‘˜๋กœ ๋‚˜๋‰˜๋Š” ๋‘ ๋ถ€๋ถ„์ง‘ํ•ฉ์€ ์„œ๋กœ์†Œ ์ง‘ํ•ฉ์ด๋ฉฐ, ๋‘ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ํ•ฉํ•˜๋ฉด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์›๋ž˜์˜ ์ง‘ํ•ฉ์ด ๋˜์–ด ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด {1, 3, 5, 6, 7, 10}์ด ์ž…๋ ฅ๋˜๋ฉด {1, 3, 5, 7} = {6, 10} ์œผ๋กœ ๋‘ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ํ•ฉ์ด 16์œผ๋กœ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œํ’€์ด_๋ฌถ์Œ ๊ธฐ์ค€ ๋ฌถ์„ ๊ฒฝ์šฐ์™€ ๋ฌถ์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆ  ๋‹ค์Œ ๋ ˆ๋ฒจ๋กœ ์ด๋™ depth๋ฅผ ๋„˜์–ด์„ค ๊ฒฝ์šฐ ํƒ์ƒ‰ ์ข…๋ฃŒ ๋ฐ ๋‚˜๋‰œ ๋‘ ์ง‘ํ•ฉ์„ ๋น„๊ต ์ฝ”๋“œ function solution(d, n) { le..

[DFS]๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ์ž์—ฐ์ˆ˜ 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..

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
๊ธ€ ๋ณด๊ด€ํ•จ