๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€92

๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜, DFS(Depth-First Search) DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)ํŠน์ • ๋ฐฉํ–ฅ์œผ๋กœ ์ตœ๋Œ€ํ•œ ๊นŠ์ด ๋“ค์–ด๊ฐ€์„œ ๋น ์ ธ๋‚˜์˜ค๋Š” ๋ฐฉ์‹DFS๋Š” ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ์Šคํƒ(Stack): ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์ค‘์— ๋‚˜๊ฐ€๋Š” ํ˜•์‹ → FILODFS๋Š” 2์ฐจ์› ๋ฐฐ์—ด(๋ฆฌ์ŠคํŠธ)๋กœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„๊ทธ๋ž˜ํ”„ ํ˜น์€ ํŠธ๋ฆฌ์—์„œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ, ์™„์ „ํƒ์ƒ‰ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„ ๋ฐฉ์‹0 12, 321, 531, 4, 543, 552, 3, 4 ๊ธฐ๋ณธ ๋™์ž‘ ๋ฐฉ์‹์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ๋„ฃ๊ณ  [๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ]์Šคํƒ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด์˜จ ๋…ธ๋“œ์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ• ์žˆ๋‹ค๋ฉด, ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๊ณ  [๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ]• ์—†๋‹ค๋ฉด, ํ˜„์žฌ ๋…ธ๋“œ(์Šคํƒ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด์˜จ ๋…ธ๋“œ)๋ฅผ ์Šคํƒ์—์„œ ์ถ”์ถœ2๋ฒˆ ๊ณผ์ •์„ .. 2026. 4. 4.
๋ฐฑํŠธ๋ž˜ํ‚น ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ณ ๋ คํ•  ๋•Œ ์‚ฌ์šฉ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ž˜ํ”„/ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ์™„์ „ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉDFS์™€์˜ ์ฐจ์ด์ DFS๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์™„์ „ ํƒ์ƒ‰ ๋ชฉ์ ์œผ๋กœ, ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„๋ฐฑํŠธ๋ž˜ํ‚น๋„ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด์ง€๋งŒ, ๋‹จ์ˆœํžˆ ์™„์ „ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์œ ๋งํ•œ ๋…ธ๋“œ๋กœ ์ด๋™๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๋ฐฉ์‹(2๊ฐ€์ง€)1. ์ธ์ ‘ํ–‰๋ ฌ0100101101010110 2. ์ธ์ ‘๋ฆฌ์ŠคํŠธ0 1221, 3, 432, 442, 3 ๋ฐฑํŠธ๋ž˜ํ‚น ๊ธฐ๋ณธ ํ˜•ํƒœfunction recursive() { if ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค๋ฉด { ์ฒ˜๋ฆฌ; } for ์ž์‹ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ { if ์ž„์˜์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค๋ฉด { ์ž์‹ ๋…ธ๋“œ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ; ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ; .. 2026. 4. 4.
์ด์ง„ํƒ์ƒ‰ ์ˆœ์ฐจ ํƒ์ƒ‰ vs ์ด์ง„ ํƒ์ƒ‰ex) ๋ฆฌ์ŠคํŠธ์—์„œ 12์ธ ์›์†Œ์˜ ์œ„์น˜ ์ฐพ๊ธฐ์ˆœ์ฐจ ํƒ์ƒ‰๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํ™•์ธ → ์‹œ๊ฐ„๋ณต์žก๋„: O(N)์ด์ง„ ํƒ์ƒ‰์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ → ์‹œ๊ฐ„๋ณต์žก๋„: O(logN)์ด์ง„ํƒ์ƒ‰ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‹œ์ž‘์ (left)์™€ ๋์ (end)์„ ๊ธฐ์ค€์œผ๋กœ ํƒ์ƒ‰ ๋ฒ”์œ„ ๋ช…์‹œ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ 2๋กœ ๋‚˜๋ˆ„๊ธฐ์ด์ƒ์ ์ธ ๊ฒฝ์šฐ ๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ๋ฒ”์œ„๊ฐ€ ๋ฐ˜์œผ๋กœ ๊ฐ์†Œ → log ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋งค์šฐ ๋„“์€(์–ต ๋‹จ์œ„ ์ด์ƒ) ํƒ์ƒ‰ ๋ฒ”์œ„์—์„œ ์ตœ์ ์˜ ํ•ด๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ ๋’ค์— ๋‹ค์ˆ˜์˜ ์ฟผ๋ฆฌ(query)๋ฅผ ๋‚ ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ด์ง„ ํƒ์ƒ‰ ์ฝ”๋“œ์ด์ง„ ํƒ์ƒ‰์€ ๋ฐฐ์—ด์ด ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ˆ˜ํ–‰1. ์žฌ๊ท€ํ•จ์ˆ˜ ์ด์šฉfunction binarySea.. 2026. 4. 4.
๊ทธ๋ฆฌ๋””(Greedy)/ํƒ์š•์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ๋‹น์žฅ ๊ฐ€์žฅ ์ข‹์•„๋ณด์ด๋Š” ์ƒํ™ฉ๋งŒ์„ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ตœ์ ์˜ ํ•ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๊ทผ์‚ฌ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ๋  ๋•Œ๊ฐ€ ๋งŽ์Œ → ์ตœ์ ์˜ ํ•ด์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ทผ์‚ฌ ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œex) ๋ฃจํŠธ์—์„œ ์ถœ๋ฐœํ•ด์„œ ๋‹จ๋ง ๋…ธ๋“œ๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒฝ์šฐ, ๊ฑฐ์ณ๊ฐ€๋Š” ๋…ธ๋“œ์˜ ํ•ฉ์ด ๊ฐ€์žฅ ํฐ ๊ฒฝ์šฐ ๊ตฌํ•˜๊ธฐ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’€๊ธฐ์ตœ์ ์˜ ํ•ด: 10 (1→4→5)๋ชจ๋“  ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•จ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€๊ธฐ๋งค ์ƒํ™ฉ์—์„œ ๋‹จ์ˆœํžˆ ๊ฐ€์žฅ ํฐ ๋…ธ๋“œ๋ฅผ ์„ ํƒ: 8 (1→5→2)๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, ์ตœ์ ์˜ ํ•ด๋Š” ์•„๋‹ˆ๋‹ค![์ ‘๊ทผ ๋ฐฉ์‹]1. ๋ฐฉ๋ฒ• ๊ณ ์•ˆํ•˜๊ธฐ: ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ ์•ˆ2. ์ •๋‹น์„ฑ ํ™•์ธํ•˜๊ธฐ: ์ž์‹ ์ด ๊ณ ์•ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•ญ์ƒ ์ตœ์ ์˜ ํ•ด๋ฅผ ๋ณด์žฅํ•˜๋Š”์ง€ ํ™•์ธ(์ฆ๋ช… ๋‹จ๊ณ„) ex) ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ์นด์šดํ„ฐ์— 500์›, .. 2026. 4. 4.