๐Ÿ’•
ํ›„์›
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€113

[์ž๋ฃŒ๊ตฌ์กฐ] ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ(Segment Tree) ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ(Segment Tree)๋Š” ๋ถ€๋ถ„ ํ•ฉ์„ ํŠธ๋ฆฌ ๊ตฌ์กฐ์— ์ €์žฅํ•ด์„œ, ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋„ ๋ถ€๋ถ„ํ•ฉ์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ์ด๋Ÿฐ ๋Š๋‚Œ์ด๋‹ค. ์œ„์˜ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ˆซ์ž๋Š” ๊ฐ ๋…ธ๋“œ์˜ ์ธ๋ฑ์Šค์ด๊ณ , ์•„๋ž˜ ํฐ ์ˆซ์ž๋Š” ๋ถ€๋ถ„ํ•ฉ์˜ ๋ฒ”์œ„์ด๋‹ค. ์ฆ‰ ๋ฃจํŠธ ๋…ธ๋“œ์ธ [0]์—๋Š” ๋ฐฐ์—ด์˜ 0~9๋ฒˆ์งธ ๊ฐ’๋“ค์˜ ํ•ฉ์ด ์ €์žฅ๋˜์–ด ์žˆ๊ณ , [11] ๋…ธ๋“œ์—๋Š” ๋ฐฐ์—ด์˜ 5~6๋ฒˆ์งธ ๊ฐ’๋“ค์˜ ํ•ฉ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์‹์ด๋‹ค. ๊ตฌํ˜„ | 1. init ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐ ๊ฐ’์„ ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ์— ์ฒ˜์Œ ๋„ฃ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด๋•Œ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ [0]๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค. ํ•œ ๋…ธ๋“œ์— ๊ฐ’์„ ์ฑ„์šธ ๋•Œ๋Š” ์ž์‹ ๋…ธ๋“œ์— ๊ฐ’์„ ๋จผ์ € ์ฑ„์šฐ๊ณ  ๊ทธ ๋’ค์— ๊ทธ ํ•ฉ์„ ์“ฐ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋ง๋‹จ ๋…ธ๋“œ (์˜ˆ๋ฅผ ๋“ค์–ด, 6๋ฒˆ์งธ๋ถ€ํ„ฐ 6๋ฒˆ์งธ๊นŒ์ง€์˜ ํ•ฉ ๋…ธ.. 2020. 4. 14.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ(Strongly Connected Component) ๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ(Strongly Connected Component, SCC)๋Š” ์–ด๋–ค ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ๋‚ด์—์„œ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋‹ค. ์ž„์˜์˜ ๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์ •์ ๋ผ๋ฆฌ๋Š” ์„œ๋กœ ์ด์–ด์ง„ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ž„์˜์˜ ๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ ๋‚ด๋ถ€์˜ ์ •์ ๊ณผ ์™ธ๋ถ€์˜ ์ •์ ๋ผ๋ฆฌ๋Š” ์„œ๋กœ ์ด์–ด์ง„ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ์ด๋Š” ์–ด๋–ค ํ•œ ์ •์ ์— ๋Œ€ํ•ด ์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ตœ๋Œ€์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ {A, B, C, E}, {D, G, H}, {F}, {I}๊ฐ€ ๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ์ด๋‹ค. ์–ด๋–ค ๊ทธ๋ž˜ํ”„์—์„œ์˜ SCC๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” ์ฝ”์‚ฌ๋ผ์ฃผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค. ์ฝ”์‚ฌ๋ผ์ฃผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ์ฝ”์‚ฌ๋ผ์ฃผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ DFS๋ฅผ ์ด์šฉํ•œ ์œ„์ƒ ์ •๋ ฌ์„ ํ† ๋Œ€๋กœ SCC๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ทธ๋ž˜ํ”„์™€ ์—ญ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋ฅผ ์ค€๋น„ํ•œ๋‹ค.. 2020. 4. 13.
[ํ”ฝ์…€์•„ํŠธ] 0410 ๋™์•„๋ฆฌ๋ฐฉ ์„ ์„ ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์“ฐ๋Š” ์—ฐ์Šต์„ ํ–ˆ๋‹ค. ์ฐ์„ ๋•Œ๋Š” ๊ธด๊ฐ€๋ฏผ๊ฐ€ ํ–ˆ๋Š”๋ฐ, ์™„์„ฑ๋ณธ์„ ๋ณด๊ณ  ๋‚˜๋‹ˆ ํ™•์‹คํžˆ ๊น”๋”ํ•˜๋‹ค. ํ…Œ์ด๋ธ” ์œ„์— ์˜ฌ๋ ค์ง„ ์œ ๋ฆฌ ์งˆ๊ฐ ํ‘œํ˜„ํ•˜๋Š” ๊ฒŒ ์žฌ๋ฐŒ์—ˆ๋‹ค. ํ…Œ์ด๋ธ” ๋‹ค๋ฆฌ ์—ด์‹ฌํžˆ ์ฐ์—ˆ๋Š”๋ฐ ๊ฐ€๋ ค์ ธ์„œ ์•„์‰ฌ์›€. ๊ทธ๋ฆผ์ž ๋„ฃ์€ ๊ฒŒ ์‹ ์˜ ํ•œ ์ˆ˜์ธ ๊ฒƒ ๊ฐ™๋‹ค. 2020. 4. 12.
[์ž๋ฃŒ๊ตฌ์กฐ] ํ(Queue) ํ(Queue) | ํ•œ ์ชฝ ๋์—์„œ๋Š” ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ณ , ๋ฐ˜๋Œ€์ชฝ ๋์—์„œ๋Š” ์ž๋ฃŒ๋ฅผ ๋บ„ ์ˆ˜ ์žˆ๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ. FIFO(First-In-First-Out) | ๋จผ์ € ๋“ค์–ด๊ฐ„ ์ž๋ฃŒ๊ฐ€ ๋จผ์ € ๋‚˜์˜จ๋‹ค. ์ธํ(Enqueue) | ํ์— ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ. ๋””ํ(Dequeue) | ํ์—์„œ ์ž๋ฃŒ๋ฅผ ๋นผ๋Š” ๊ฒƒ. ์‚ฌ์ด์ฆˆ(Size) | ํ์˜ ํฌ๊ธฐ. ํ์— ๋“ค์–ด ์žˆ๋Š” ์ž๋ฃŒ ์ˆ˜. ํ”„๋ก ํŠธ(Front) | ํ์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์ž๋ฃŒ. ๋ฐฑ(Back) | ํ์˜ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์ž๋ฃŒ. 2019. 11. 11.
[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack) ์Šคํƒ(Stack) | ํ•œ ์ชฝ ๋์—์„œ๋งŒ ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ณ  ๋บ„ ์ˆ˜ ์žˆ๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ. LIFO(Last-In-First-Out) | ๋จผ์ € ๋“ค์–ด๊ฐ„ ์ž๋ฃŒ๊ฐ€ ๋‚˜์ค‘์— ๋‚˜์˜จ๋‹ค. ํ‘ธ์‹œ(Push) | ์Šคํƒ์— ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ. ํŒ(Pop) | ์Šคํƒ์—์„œ ์ž๋ฃŒ๋ฅผ ๋นผ๋Š” ๊ฒƒ. ์‚ฌ์ด์ฆˆ(Size) | ์Šคํƒ์˜ ํฌ๊ธฐ. ์Šคํƒ์— ๋“ค์–ด ์žˆ๋Š” ์ž๋ฃŒ ์ˆ˜. ํƒ‘(Top) | ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ž๋ฃŒ. (์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ.) 2019. 11. 3.