[ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•] ํ›„์œ„ํ‘œ๊ธฐ์‹์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ (html, js ์ด์šฉ) :: ๊ฐœ๋…์—์„œ ๊ตฌํ˜„๊นŒ์ง€
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/๊ธฐ์ดˆ 2020. 12. 21. 00:00

ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ ๊ณ„์‚ฐ๊ธฐ ๊ด€๋ จ ์™ธ์ฃผ๊ฐ€ ๋“ค์–ด์™€์„œ ํ•ด๋ณด๋˜ ์ค‘, ์˜ˆ์ „์— ๋ฐฐ์› ๋˜ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ๊ฒ€์ƒ‰ ์—†์ด ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค... ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ๊นŒ stack์„ ์ด์šฉํ•ด์„œ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ๋‚˜์™€์žˆ์–ด์„œ ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•œ๋‹ค. ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ• ์ˆ˜์‹ ํŠธ๋ฆฌ ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์ด๋ž€ ๊ณ„์‚ฐ์‹์—์„œ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž. ์ˆ˜์‹ : 9x3+1-3%3 ์ˆ˜์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋น„์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ฐ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ๋Š” ์ˆ˜์‹์„ ํŠธ๋ฆฌ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ˆ ์ˆ˜์‹ํŠธ๋ฆฌ, ์ฆ‰ Expression Tree๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ํŠธ๋ฆฌ ์ˆœํšŒ์™€ ํ‘œ๊ธฐ๋ฒ• ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์—๋Š” prefix(์ „์œ„)..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ตœ๋‹จ๊ฒฝ๋กœ ์ฐพ๊ธฐ (Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 20. 15:28

์ตœ๋‹จ ๊ฒฝ๋กœ ๊ทธ๋ž˜ํ”„์—์„œ ์œ ๋„๋˜๋Š” ๋ฌธ์ œ๋“ค ์ค‘ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ ํŠน์ • ์ •์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ(๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ์ธ ๊ฒฝ๋กœ)๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ์•„๋‚ด๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ์ด์ „์˜ MST ๋ฌธ์ œ์™€ ๋‹ค๋ฅด๋‹ค. ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ MST์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ Prim(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‘์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. [MST] Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ vertice(์ •์ )๋Š” 3๊ฐ€์ง€ ๋ถ„๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค. tree vertice(T) : tree์— ์†ํ•ด ์žˆ๋Š” ์ •์  fringe vertice (F) : tree์— ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉด์„œ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ์ •์  unseen vertice (U) : ๋‚˜๋จธ์ง€ MST์—์„œ T์™€ F์˜ ์ •์  ์‚ฌ์ด์˜ ์ตœ์†Œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณ„์† ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ๋˜ ๊ฒƒ ๋Œ€์‹ ์—, ์ตœ๋‹จ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: MST (Prim/Dijkstra, Kruskal, ์‹œ๊ฐ„๋ณต์žก๋„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 20. 15:25

MST Spanning Tree : ๊ทธ๋ž˜ํ”„ ๋‚ด์˜ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ ์šฐ์„  ํŠธ๋ฆฌ์˜ ์ •์˜๋Š” connected undirected acyclic graph (์—ฐ๊ฒฐ ๋น„๋ฐฉํ–ฅ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„)์ด๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฉฐ, ๋ฐฉํ–ฅ์„ฑ์€ ์—†๊ณ  ์ˆœํ™˜์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ž˜ํ”„์ด๋‹ค. ํ•˜๋‚˜์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ๋ž˜ํ”„ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ค‘ ํŠน๋ณ„ํ•˜๊ฒŒ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ Spanning Tree๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด Spanning tree(์‹ ์žฅ ํŠธ๋ฆฌ)๋Š” ๊ทธ๋ž˜ํ”„์˜ ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„๋ฉด์„œ ๊ฐ„์„ ์˜ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€(์ตœ์†Œ ์—ฐ๊ฒฐ) ๊ทธ๋ž˜ํ”„์ด๋‹ค. ๊ฐ์ด ์•ˆ์˜จ๋‹ค๋ฉด ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด์ž. ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์†Œํ•œ์˜ ๊ฐ„์„ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•œ๋‹ค. ์ด ๋ถ€..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ (BFS, DFS)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 13. 00:01

๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ•์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ธ BFS(Breadth-First Search)์™€ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ธ DFS(Depth-First Search)์ด๋‹ค. BFS BFS๋Š” ํ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค์—ˆ์ง€๋งŒ, ๋ชจ๋“  ๊ทธ๋ž˜ํ”„์—์„œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ queue์— ๋„ฃ๋Š”๋‹ค. queue์˜ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ๊บผ๋‚ธ ํ›„, ํ•ด๋‹น ๋…ธ๋“œ์™€์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ queue์— ๋„ฃ๋Š”๋‹ค. ์œ„์˜ ๋ฐฉ์‹์„ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. stack์— ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1=>2=>3=>4=>5=>6=>7=>8 ๋”ฐ๋ผ์„œ ํŠธ๋ฆฌ์—์„œ BFS๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํƒ์ƒ‰์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ ˆ๋ฒจ ์ˆœํšŒ๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. DFS DFS๋Š” ์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ˆœ์—ด๊ณผ ์กฐํ•ฉ (์ฝ”๋“œ, next_permutation ์ด์šฉ, ์ง์ ‘ ๊ตฌํ˜„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 7. 10:44

์ˆœ์—ด๊ณผ ์กฐํ•ฉ ์ˆœ์—ด ์ •์˜ ์ˆœ์—ด์€ ์ค‘๋ณต์—†์ด n๊ฐœ ์ค‘ r๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ˆœ์„œ๋ฅผ ์ •ํ•ด ๋‚˜์—ดํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ A, B, C ์„ธ๊ฐ€์ง€ ์›์†Œ๊ฐ€ ์žˆ์„ ๋•Œ, 2๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ˆœ์„œ๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์„ 3P2๋ผ๊ณ  ํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฏ€๋กœ ์ด 6๊ฐ€์ง€ ์ด๋‹ค. ์ˆœ์—ด์€ P(Permutation)๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. $$ {}n\mathrm{P}{r} = \frac{n!}{(n-r)!} $$ ์ค‘๋ณต ์ˆœ์—ด์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋Š” ์ˆœ์—ด ์ค‘ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๊ฒƒ์„ ๋‹ค์‹œ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ์ค‘๋ณต ์ˆœ์—ด์€ ฮ ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. $$ {n}\mathrm{\pi}{r} = n^r $$ ๊ตฌํ˜„ ์ˆœ์—ด // ์ง์ ‘ ๊ตฌํ˜„ void swap(vector& set, int a, int b){ int tmp = set[a]; ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ (ํ† ๋„ˆ๋จผํŠธ ํŠธ๋ฆฌ, selection ์•Œ๊ณ ๋ฆฌ์ฆ˜)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 7. 10:41

์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ ์„ ํƒ ๋ฌธ์ œ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€, ์ตœ์†Œ ๊ฐ’์„ ์ฐพ๊ฑฐ๋‚˜ n๋ฒˆ์งธ ํฐ ๊ฐ’, n๋ฒˆ์งธ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š” ๊ณผ์ •๋„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋งŽ์ด ๋“ฑ์žฅํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ n๊ฐœ์˜ ์ˆซ์ž๋“ค ์ค‘ k๋ฒˆ์งธ๋กœ ์ž‘์€(๋˜๋Š” ํฐ) ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ฅผ 'Selection problem' ์ฆ‰, ์„ ํƒ ๋ฌธ์ œ ๋ผ๊ณ  ํ•œ๋‹ค. ์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ ์„ ํƒ ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฌธ์ œ๊ฐ€ ์ตœ๋Œ€ / ์ตœ์†Œ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊นŒ? ์ •๋ ฌ ๋จผ์ €, ์ด์ „์— ๋ฐฐ์› ๋˜ ์ •๋ ฌ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ ํ›„ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ์ตœ๋Œ€๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ค‘๊ฐ„ ์š”์†Œ๋“ค์˜ ์ •๋ ฌ์€ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๋Š”๋ฐ์— ๋ถˆํ•„์š”ํ•œ ๊ณผ์ •์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ ฌ์„ ์ด์šฉํ•˜๋ฉด ์ •๋ ฌ์˜ ์ตœ์†Œ ์‹œ๊ฐ„๋ณต์žก๋„์ธ O(nlgn)๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. min/..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ํƒ์ƒ‰ (์„ ํ˜• ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰, ํ•ด์‹œ ํƒ์ƒ‰)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 30. 23:12

ํƒ์ƒ‰ ํƒ์ƒ‰์€ ์ฃผ์–ด์ง„ ์ž๋ฃŒ๋“ค ์ค‘ ์›ํ•˜๋Š” ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ํƒ์ƒ‰์€ ์ž์ฃผ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ด์ „์— ๋ฐฐ์› ๋˜ '์ •๋ ฌ'์€ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ •๋ ฌ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๊ธฐ์ค€์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋„ ์“ฐ์ด์ง€๋งŒ ์›ํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์ด๊ธฐ๋„ ํ•œ๋‹ค. ๋ฌผ๋ก  ๊ตณ์ด ์ •๋ ฌ์ด ์•„๋‹ˆ๋”๋ผ๋„ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์žˆ๋‹ค. ์ •๋ ฌ ๋ณด๊ธฐ ์•ž์œผ๋กœ ์†Œ๊ฐœํ•  ํƒ์ƒ‰์€ ๋‹ค์Œ์˜ 4๊ฐ€์ง€ ์ข…๋ฅ˜์ด๋‹ค. ์„ ํ˜•ํƒ์ƒ‰ ์ด์ง„ํƒ์ƒ‰ ํ•ด์‹œํƒ์ƒ‰ BST ํƒ์ƒ‰์„ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋งž์ถฐ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ ๋ณด๊ธฐ ์„ ํ˜• ํƒ์ƒ‰ ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์„ ํ˜• ํƒ์ƒ‰์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋‹ค. ์„ ํ˜• ํƒ์ƒ‰..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ํƒ์ƒ‰ - BST
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 30. 23:09

BST BST(Binary Search Tree)๋Š” ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ด์ž ์ด์ง„ํƒ์ƒ‰์„ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ณผ์ • BST๋ฅผ ์ด์šฉํ•œ ํƒ์ƒ‰์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋งŒ๋“ค๊ธฐ (์ƒ์„ฑ) ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ ์ฐพ๊ธฐ (ํƒ์ƒ‰) ์‚ญ์ œ ๋ฐ ์‚ฝ์ž… ํ•˜๊ธฐ (์‚ญ์ œ / ์‚ฝ์ž…) ์˜ˆ์‹œ ๋จผ์ € ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ์ž‘์€ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ํฐ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ฝ์ž…ํ•˜๋ฉด์„œ ์•Œ๋งž์€ ์œ„์น˜๋ฅผ ์ฐพ์•„์ฃผ๋ฉด ๋œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜์˜จ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์ค‘์œ„ ์ˆœํšŒํ•˜๋ฉด ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ๊ณ  ์‚ญ์ œํ•ด๋ณด์ž. ์›ํ•˜๋Š” ์š”์†Œ๋Š” 6์ด๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆผ์—์„œ ์˜ค๋ฅธ์ชฝ ๊ทธ..