[DFS]์ด์ง„ํŠธ๋ฆฌ ์ˆœํšŒ

๋ฌธ์ œ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ์ „์œ„์ˆœํšŒ, ์ค‘์œ„์ˆœํšŒ, ํ›„์œ„์ˆœํšŒ๋ฅผ ๋ˆ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”. ๊ฐœ๋… ํŠธ๋ฆฌ(Tree) ๋…ธ๋“œ(node)๋กœ ์ด๋ฃจ์–ด์ง„ ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ(root) ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ ๋ฃจํŠธ ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ ๊ทธ ์ž์‹ ๋˜ํ•œ 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ , ์ด๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์ •์˜ ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)๋“ค๋กœ ๊ตฌ์„ฑ ๋ฃจํŠธ ๋…ธ๋“œ(root node): ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ, ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ๋…ธ๋“œ๋งŒ์„ ๊ฐ€์ง ๋‹จ๋ง ๋…ธ๋“œ(leaf node): ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ, '๋ง๋‹จ ๋…ธ๋“œ' ๋˜๋Š” '์žŽ ๋…ธ๋“œ' ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ ๋‚ด๋ถ€ ๋…ธ๋“œ(internal node): ๋‹จ๋ง ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ ๊ฐ„์„ (edge): ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ (link, branch ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„) ํ˜•์ œ(sibling..

[์žฌ๊ท€ํ•จ์ˆ˜์™€ ์Šคํƒ ํ”„๋ ˆ์ž„]์ด์ง„์ˆ˜ ์ถœ๋ ฅ

๋ฌธ์ œ 10์ง„์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ, ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œํ’€์ด ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame) ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ(stack) ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ โ–ถ JS: ์ฝœ ์Šคํƒ(Call Stack)์— ์ ์žฌ๋˜๋Š” ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋Š” ํ•จ์ˆ˜ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ(Functional Lexcial Environment)์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ค‘ ํ•˜๋‚˜์ธ ํ•จ์ˆ˜ ํ™˜๊ฒฝ ๋ ˆ์ฝ”๋“œ(Functional Environment Record)์— ์ €์žฅ๋œ๋‹ค. ํ•จ์ˆ˜ ํ™˜๊ฒฝ ๋ ˆ์ฝ”๋“œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜, arguments ๊ฐ์ฒด, ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•œ ์ง€์—ญ ๋ณ€์ˆ˜์™€ ์ค‘์ฒฉ ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น(push)๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ..

[๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜]๋ฎค์ง๋น„๋””์˜ค

๋ฌธ์ œ ์ง€๋‹ˆ๋ ˆ์ฝ”๋“œ์—์„œ๋Š” ๋ถˆ์„ธ์ถœ์˜ ๊ฐ€์ˆ˜ ์กฐ์˜ํ•„์˜ ๋ผ์ด๋ธŒ ๋™์˜์ƒ์„ DVD๋กœ ๋งŒ๋“ค์–ด ํŒ๋งคํ•˜๋ ค ํ•œ๋‹ค. DVD์—๋Š” ์ด N๊ฐœ์˜ ๊ณก์ด ๋“ค์–ด๊ฐ€๋Š”๋ฐ, DVD์— ๋…นํ™”ํ•  ๋•Œ์—๋Š” ๋ผ์ด๋ธŒ์—์„œ์˜ ์ˆœ์„œ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ์šฐ๋ฆฌ์˜ ๊ฐ€์ˆ˜ ์กฐ์˜ํ•„์”จ๊ฐ€ ๋งค์šฐ ์‹ซ์–ดํ•œ๋‹ค. ์ฆ‰, 1๋ฒˆ ๋…ธ๋ž˜์™€ 5๋ฒˆ ๋…ธ๋ž˜๋ฅผ ๊ฐ™์€ DVD์— ๋…นํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 1๋ฒˆ๊ณผ 5๋ฒˆ ์‚ฌ์ด์˜ ๋ชจ๋“  ๋…ธ๋ž˜๋„ ๊ฐ™์€ DVD์— ๋…นํ™”ํ•ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ํ•œ ๋…ธ๋ž˜๋ฅผ ์ชผ๊ฐœ์„œ ๋‘ ๊ฐœ์˜ DVD์— ๋…นํ™”ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ์ง€๋‹ˆ๋ ˆ์ฝ”๋“œ ์ž…์žฅ์—์„œ๋Š” ์ด DVD๊ฐ€ ํŒ”๋ฆด ๊ฒƒ์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ์‚ฌ์—…์— ๋‚ญ๋น„๋˜๋Š” DVD๋ฅผ ๊ฐ€๊ธ‰์  ์ค„์ด๋ ค๊ณ  ํ•œ๋‹ค. ๊ณ ๋ฏผ ๋์— ์ง€๋‹ˆ๋ ˆ์ฝ”๋“œ๋Š” M๊ฐœ์˜ DVD์— ๋ชจ๋“  ๋™์˜์ƒ์„ ๋…นํ™”ํ•˜๊ธฐ ๋กœ ํ•˜์˜€๋‹ค. ์ด ๋•Œ DVD์˜ ํฌ๊ธฐ(๋…นํ™” ๊ฐ€๋Šฅํ•œ ๊ธธ์ด)๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ ..

[๊ทธ๋ฆฌ๋””]๊ฒฐํ˜ผ์‹

๋ฌธ์ œ ํ˜„์ˆ˜๋Š” ๋‹ค์Œ ๋‹ฌ์— ๊ฒฐํ˜ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ๊ฒฐํ˜ผ์‹ ํ”ผ๋กœ์—ฐ์„ ์žฅ์†Œ๋ฅผ ๋นŒ๋ ค 3์ผ๊ฐ„ ์‰ฌ์ง€ ์•Š๊ณ  ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋กœ์—ฐ์— ์ฐธ์„ํ•˜๋Š” ์นœ๊ตฌ๋“ค N๋ช…์˜ ์ฐธ์„ํ•˜๋Š” ์‹œ๊ฐ„์ •๋ณด๋ฅผ ํ˜„์ˆ˜๋Š” ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋ฏธ๋ฆฌ ์š”๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์นœ๊ตฌ๋“ค์€ ์ž์‹ ์ด ๋ช‡ ์‹œ์— ๋„์ฐฉํ•ด์„œ ๋ช‡ ์‹œ์— ๋– ๋‚  ๊ฒƒ์ธ์ง€ ํ˜„์ˆ˜์—๊ฒŒ ์•Œ๋ ค์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ”ผ๋กœ์—ฐ ์žฅ์†Œ์— ๋™์‹œ์— ์กด์žฌํ•˜๋Š” ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ ๊ทธ ์ธ์›์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๋ฅผ ๋นŒ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ํ˜„์ˆ˜๋ฅผ ๋„์™€์ฃผ์„ธ์š”. (๋งŒ์•ฝ ํ•œ ์นœ๊ตฌ๊ฐ€ ์˜ค๋Š” ์‹œ๊ฐ„ 13, ๊ฐ€๋Š”์‹œ๊ฐ„ 15๋ผ๋ฉด ์ด ์นœ๊ตฌ๋Š” 13์‹œ ์ •๊ฐ์— ํ”ผ๋กœ์—ฐ ์žฅ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๊ณ  15์‹œ ์ •๊ฐ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค) ๋ฌธ์ œํ’€์ด ์ด๋ฒคํŠธ๊ฐ€ start(์ฐธ์„์‹œ๊ฐ„)๊ณผ end(๋– ๋‚œ์‹œ๊ฐ„) ๋‘ ๊ฐœ๋กœ ๋‚˜๋‰œ๋‹ค. ๊ฐ ์‹œ๊ฐ„๊ณผ ํ•ด๋‹น ์‹œ๊ฐ„์— ์ผ์–ด๋‚œ ์ด๋ฒคํŠธ๋ฅผ ..

[๊ทธ๋ฆฌ๋””]ํšŒ์˜์‹ค ๋ฐฐ์ •

๋ฌธ์ œ ํ•œ ๊ฐœ์˜ ํšŒ์˜์‹ค์ด ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” n๊ฐœ์˜ ํšŒ์˜๋“ค์— ๋Œ€ํ•˜์—ฌ ํšŒ์˜์‹ค ์‚ฌ์šฉํ‘œ๋ฅผ ๋งŒ๋“ค ๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ ํšŒ์˜์— ๋Œ€ํ•ด ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ํšŒ์˜๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•˜ ๋ฉด์„œ ํšŒ์˜์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€์ˆ˜์˜ ํšŒ์˜๋ฅผ ์ฐพ์•„๋ผ. ๋‹จ, ํšŒ์˜๋Š” ํ•œ๋ฒˆ ์‹œ์ž‘ํ•˜๋ฉด ์ค‘๊ฐ„์— ์ค‘ ๋‹จ๋  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•œ ํšŒ์˜๊ฐ€ ๋๋‚˜๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— ๋‹ค์Œ ํšŒ์˜๊ฐ€ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œํ’€์ด ์‹œ์ž‘ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์ฐจ ํƒ์ƒ‰์„ ๋Œ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ •๋ ฌ_ ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ์ข…๋ฃŒ์‹œ๊ฐ„์ด ๊ฐ™์„ ๊ฒฝ์šฐ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ ํ˜„์žฌ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํšŒ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„๋ณด๋‹ค ํšŒ์˜ ์‹œ์ž‘์‹œ๊ฐ„์ด ๊ฐ™๊ฑฐ๋‚˜ ํด ๊ฒฝ์šฐ ํšŒ์˜ ๊ฐ€๋Šฅ ํšŒ์˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ํšŒ์˜ ์‹œ์ž‘์‹œ๊ฐ„์„ ๊ทธ ๋‹ค์Œ ์ข…๋ฃŒ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ ์ฝ”๋“œ function solution(...arr) { let answer =..

์ขŒํ‘œ ์ •๋ ฌ

๋ฌธ์ œ N๊ฐœ์˜ ํ‰๋ฉด์ƒ์˜ ์ขŒํ‘œ(X, Y)๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.์ •๋ ฌ๊ธฐ์ค€์€ ๋จผ์ € X๊ฐ’์— ์˜ํ•ด์„œ ์ •๋ ฌํ•˜๊ณ , X๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ Y๊ฐ’์— ์˜ํ•ด ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œํ’€์ด ํ•œ ์Œ์˜ ์ขŒํ‘œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๊ธฐ ์œ„ํ•ด 2์ฐจ์› ๋ฐฐ์—ด์— ์ €์žฅ ํ•ด๋‹น ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์„ ํƒ ์ •๋ ฌ ์ˆ˜ํ–‰ X๊ฐ’์„ ๋น„๊ตํ•  ๊ฒฝ์šฐ์—๋Š” 1์ฐจ์› ๋ฐฐ์—ด ๋‚ด ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋น„๊ต Y๊ฐ’์„ ๋น„๊ตํ•  ๊ฒฝ์šฐ์—๋Š” 1์ฐจ์› ๋ฐฐ์—ด ๋‚ด ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋น„๊ต ์ฝ”๋“œ function solution(arr) { let answer = arr; for(let i = 0; i arr[j][0]) { [arr[i], ar..

์žฅ๋‚œ๊พธ๋Ÿฌ๊ธฐ ํ˜„์ˆ˜

๋ฌธ์ œ ์ƒˆ ํ•™๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ƒˆ ์ง๊ฟ์„ ๋งŒ๋‚˜ ๋„ˆ๋ฌด ์‹ ์ด ๋‚ฌ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋„ค ๋ฐ˜์—๋Š” N๋ช…์˜ ํ•™์ƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜์€ ๋ฐ˜ ํ•™์ƒ๋“ค์—๊ฒŒ ๋ฐ˜ ๋ฒˆํ˜ธ๋ฅผ ์ •ํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ์šด๋™์žฅ์— ๋ฐ˜ ํ•™์ƒ๋“ค์„ ํ‚ค๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ํ•™ ์ƒ๋ถ€ํ„ฐ ์ผ๋ ฌ๋กœ ํ‚ค์ˆœ์œผ๋กœ ์„ธ์› ์Šต๋‹ˆ๋‹ค. ์ œ์ผ ์•ž์— ๊ฐ€์žฅ ์ž‘์€ ํ•™์ƒ๋ถ€ํ„ฐ ๋ฐ˜ ๋ฒˆํ˜ธ๋ฅผ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ ์ง€ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ง๊ฟ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ˜„์ˆ˜๊ฐ€ ์•ž ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ์–ด ์ง๊ฟ๊ณผ ์ž ๋ฆฌ๋ฅผ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜์€ ์ด ์‚ฌ์‹ค์„ ๋ชจ๋ฅด๊ณ  ํ•™์ƒ๋“ค์—๊ฒŒ ์„œ์žˆ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ–ˆ์Šต๋‹ˆ ๋‹ค. ํ˜„์ˆ˜์™€ ์ง๊ฟ์ด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ ๋ฐ˜ ํ•™์ƒ๋“ค์˜ ์ผ๋ ฌ๋กœ ์„œ์žˆ๋Š” ํ‚ค ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ํ˜„์ˆ˜๊ฐ€ ๋ฐ›์€ ๋ฒˆ ํ˜ธ์™€ ํ˜„์ˆ˜ ์ง๊ฟ์ด ๋ฐ›์€ ๋ฒˆํ˜ธ๋ฅผ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋ฌธ์ œํ’€์ด ๋ณธ๋ž˜ ์„ ์ƒ๋‹˜์ด ์ •ํ•ด์ค€ ๋ฒˆํ˜ธ ์ˆœ์„œ๋ฅผ ๊ตฌํ•œ๋‹ค. ์•ž์„œ ๊ตฌํ•œ..

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ