[c++] BOJ 1238 :: ํŒŒํ‹ฐ
Algorithm ๋ฌธ์ œ/BOJ 2021. 4. 21. 23:11

๋‚œ์ด๋„ : ๊ณจ๋“œ 3 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 45๋ถ„ ๋ฌธ์ œ ํŒŒํ‹ฐ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฌธ์ œ N๊ฐœ์˜ ์ˆซ์ž๋กœ ๊ตฌ๋ถ„๋œ ๊ฐ๊ฐ์˜ ๋งˆ์„์— ํ•œ ๋ช…์˜ ํ•™์ƒ์ด ์‚ด๊ณ  ์žˆ๋‹ค. ์–ด๋Š ๋‚  ์ด N๋ช…์˜ ํ•™์ƒ์ด X (1 โ‰ค X โ‰ค N)๋ฒˆ ๋งˆ์„์— ๋ชจ์—ฌ์„œ ํŒŒํ‹ฐ๋ฅผ ๋ฒŒ์ด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด ๋งˆ์„ ์‚ฌ์ด์—๋Š” ์ด M๊ฐœ์˜ ๋‹จ๋ฐฉํ–ฅ ๋„๋กœ๋“ค์ด ์žˆ๊ณ  i๋ฒˆ์งธ ๊ธธ์„ ์ง€๋‚˜๋Š”๋ฐ Ti(1 โ‰ค Ti โ‰ค 100)์˜ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ํ•™์ƒ๋“ค์€ ํŒŒํ‹ฐ์— ์ฐธ์„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑธ์–ด๊ฐ€์„œ ๋‹ค์‹œ ๊ทธ๋“ค์˜ ๋งˆ์„๋กœ ๋Œ์•„์™€์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ํ•™์ƒ๋“ค์€ ์›Œ๋‚™ ๊ฒŒ์„๋Ÿฌ์„œ ์ตœ๋‹จ ์‹œ๊ฐ„์— ์˜ค๊ณ  ๊ฐ€๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. ์ด ๋„๋กœ๋“ค์€ ๋‹จ๋ฐฉํ–ฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ ๊ทธ๋“ค์ด ์˜ค๊ณ  ๊ฐ€๋Š” ๊ธธ์ด ๋‹ค๋ฅผ์ง€๋„ ๋ชจ๋ฅธ๋‹ค. N๋ช…์˜ ํ•™์ƒ๋“ค ์ค‘ ์˜ค๊ณ  ๊ฐ€๋Š”๋ฐ ๊ฐ€์žฅ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๋Š” ํ•™์ƒ์€ ๋ˆ„๊ตฌ์ผ์ง€ ๊ตฌํ•˜์—ฌ๋ผ. ํ’€์ด ๋ชจ๋“  ์ ์—์„œ X๊นŒ์ง€์˜ ์‹œ๊ฐ„๊ณผ X์—์„œ ๋ชจ๋“  ์ ๊นŒ์ง€..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์™ธ๋ฒฝ์ ๊ฒ€ :: ์žฌ๊ท€, ๋ฉ”๋ชจ์ด์ œ์ด์…˜, ์ฝ”๋“œ, ๊ฒฐ๊ณผ
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2021. 1. 11. 18:02

์™ธ๋ฒฝ ์ ๊ฒ€ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/60062# ๋ฌธ์ œ ์„ค๋ช… ๋ ˆ์Šคํ† ๋ž‘์„ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ์Šค์นดํ”ผ๋Š” ๋ ˆ์Šคํ† ๋ž‘ ๋‚ด๋ถ€๊ฐ€ ๋„ˆ๋ฌด ๋‚ก์•„ ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ์ง์ ‘ ๋ฆฌ๋ชจ๋ธ๋ง ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์Šคํ† ๋ž‘์ด ์žˆ๋Š” ๊ณณ์€ ์Šค๋…ธ์šฐํƒ€์šด์œผ๋กœ ๋งค์šฐ ์ถ”์šด ์ง€์—ญ์ด์–ด์„œ ๋‚ด๋ถ€ ๊ณต์‚ฌ๋ฅผ ํ•˜๋Š” ๋„์ค‘์— ์ฃผ๊ธฐ์ ์œผ๋กœ ์™ธ๋ฒฝ์˜ ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์Šคํ† ๋ž‘์˜ ๊ตฌ์กฐ๋Š” ์™„์ „ํžˆ ๋™๊ทธ๋ž€ ๋ชจ์–‘์ด๊ณ  ์™ธ๋ฒฝ์˜ ์ด ๋‘˜๋ ˆ๋Š” n๋ฏธํ„ฐ์ด๋ฉฐ, ์™ธ๋ฒฝ์˜ ๋ช‡๋ช‡ ์ง€์ ์€ ์ถ”์œ„๊ฐ€ ์‹ฌํ•  ๊ฒฝ์šฐ ์†์ƒ๋  ์ˆ˜๋„ ์žˆ๋Š” ์ทจ์•ฝํ•œ ์ง€์ ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ๊ณต์‚ฌ ๋„์ค‘์—๋„ ์™ธ๋ฒฝ์˜ ์ทจ์•ฝ ์ง€์ ๋“ค์ด ์†์ƒ๋˜์ง€ ์•Š์•˜๋Š” ์ง€, ์ฃผ๊ธฐ์ ์œผ๋กœ ์นœ๊ตฌ๋“ค์„ ๋ณด๋‚ด์„œ ์ ๊ฒ€์„ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋น ๋ฅธ ๊ณต์‚ฌ ์ง„ํ–‰์„ ์œ„ํ•ด ์ ๊ฒ€ ์‹œ๊ฐ„์„ 1์‹œ๊ฐ„์œผ๋กœ ์ œํ•œํ–ˆ์Šต..

[์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„] ์นด์นด์˜ค 2020 Recruitment ๋ฌธ์ œ :: ์ž๋ฌผ์‡ ์™€ ์—ด์‡ 
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 11. 8. 01:16

์ž๋ฌผ์‡ ์™€ ์—ด์‡  ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/60059# ๋ฌธ์ œ ์„ค๋ช… ๊ณ ๊ณ ํ•™์ž์ธ ํŠœ๋ธŒ๋Š” ๊ณ ๋Œ€ ์œ ์ ์ง€์—์„œ ๋ณด๋ฌผ๊ณผ ์œ ์ ์ด ๊ฐ€๋“ํ•  ๊ฒƒ์œผ๋กœ ์ถ”์ •๋˜๋Š” ๋น„๋ฐ€์˜ ๋ฌธ์„ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์„ ์—ด๋ ค๊ณ  ์‚ดํŽด๋ณด๋‹ˆ ํŠน์ดํ•œ ํ˜•ํƒœ์˜ ์ž๋ฌผ์‡ ๋กœ ์ž ๊ฒจ ์žˆ์—ˆ๊ณ  ๋ฌธ ์•ž์—๋Š” ํŠน์ดํ•œ ํ˜•ํƒœ์˜ ์—ด์‡ ์™€ ํ•จ๊ป˜ ์ž๋ฌผ์‡ ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ด ์ฃผ๋Š” ์ข…์ด๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ฒจ์žˆ๋Š” ์ž๋ฌผ์‡ ๋Š” ๊ฒฉ์ž ํ•œ ์นธ์˜ ํฌ๊ธฐ๊ฐ€ 1 x 1์ธ N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ํ˜•ํƒœ์ด๊ณ  ํŠน์ดํ•œ ๋ชจ์–‘์˜ ์—ด์‡ ๋Š” M x M ํฌ๊ธฐ์ธ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฌผ์‡ ์—๋Š” ํ™ˆ์ด ํŒŒ์—ฌ ์žˆ๊ณ  ์—ด์‡  ๋˜ํ•œ ํ™ˆ๊ณผ ๋Œ๊ธฐ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ด์‡ ๋Š” ํšŒ์ „๊ณผ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—ด์‡ ์˜ ๋Œ๊ธฐ ๋ถ€๋ถ„์„ ์ž๋ฌผ์‡ ์˜ ํ™ˆ ๋ถ€๋ถ„์—..

[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++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ์—ฌํ–‰๊ฒฝ๋กœ (DFS, ๋ฌธ์ œ ํ’€์ด, ์ฝ”๋“œ)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 9. 19. 23:48

์—ฌํ–‰๊ฒฝ๋กœ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/43164 ๋ฌธ์ œ ์„ค๋ช… ์ฃผ์–ด์ง„ ํ•ญ๊ณต๊ถŒ์„ ๋ชจ๋‘ ์ด์šฉํ•˜์—ฌ ์—ฌํ–‰๊ฒฝ๋กœ๋ฅผ ์งœ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ ICN ๊ณตํ•ญ์—์„œ ์ถœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ํ•ญ๊ณต๊ถŒ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด tickets๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ฐฉ๋ฌธํ•˜๋Š” ๊ณตํ•ญ ๊ฒฝ๋กœ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๋ชจ๋“  ๊ณตํ•ญ์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž 3๊ธ€์ž๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๊ณตํ•ญ ์ˆ˜๋Š” 3๊ฐœ ์ด์ƒ 10,000๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค. tickets์˜ ๊ฐ ํ–‰ [a, b]๋Š” a ๊ณตํ•ญ์—์„œ b ๊ณตํ•ญ์œผ๋กœ ๊ฐ€๋Š” ํ•ญ๊ณต๊ถŒ์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ํ•ญ๊ณต๊ถŒ์€ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๊ฐ€ 2๊ฐœ ์ด์ƒ์ผ ๊ฒฝ์šฐ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๊ฐ€ ์•ž์„œ๋Š” ๊ฒฝ๋กœ๋ฅผ return ํ•ฉ..

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

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

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

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