๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ •๋ ฌ์„ ์œ„ํ•œ ๋น„๊ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•œ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ๋น„๊ต ์ •๋ ฌ(comparison sort) ๋น„๊ต ์ •๋ ฌ์€ ๋ฐฐ์—ด์˜ ์›์†Œ ์Œ ๊ฐ„์˜ ๋น„๊ต๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ž O(nlogn)์ด๋ผ๋Š” ์‹œ๊ฐ„ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„œ์ง€ ๋ชปํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋น„๊ต ์ •๋ ฌ์˜ ์ข…๋ฅ˜๋กœ์จ ์„ ํƒ ์ •๋ ฌ(Selection Sort), ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort), ํž™ ์ •๋ ฌ(Heap Sort), ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort), ํ€ต ์ •๋ ฌ(Quick Sort)์ด ์žˆ๋‹ค. ์„ ํƒ ์ •๋ ฌ ์ œ์ผ ๋จผ์ € ์„ ํƒ ์ •๋ ฌ์ด๋ž€? ๋ฐฐ์—ด์—์„œ ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ ์›์†Œ์™€ ๊ตํ™˜ํ•˜..

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree) : ๊ท ํ˜•๊ณผ ์„ฑ๋Šฅ์˜ ์กฐํ™”

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์•ž์„œ, ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์ด๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ ‘๊ทผ, ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ๋“ฑ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜๋Š” ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•˜์ง€๋งŒ, ์ œ์ผ ๊ธฐ๋ณธ์ด๊ณ  ์„ ํ–‰๋˜์–ด ํ•™์Šต๋˜์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค. (๊ทธ ์™ธ์— AVLํŠธ๋ฆฌ, 2-3 ํŠธ๋ฆฌ, 2-3-4 ํŠธ๋ฆฌ, B-ํŠธ๋ฆฌ, RB-ํŠธ๋ฆฌ ๋“ฑ์€ ๋‹ค๋ฅธ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์ž) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)๋ž€, ์ด์ง„ ํƒ์ƒ‰์˜ ๊ฐœ๋…์„ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ์— ์ ‘๋ชฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. ๐Ÿค” ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ง„ ํƒ์ƒ‰์ด๋ž€? ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ์ค‘๊ฐ„์— ์œ„์น˜ํ•œ ํ•ญ๋ชฉ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ฉฐ ํŠน์ • ํ•ญ๋ชฉ์„ ์ฐพ๋Š” ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹ค์‹œ๋งํ•ด ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ž€, ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ..

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] AVL ํŠธ๋ฆฌ - ํšŒ์ „ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋‹ค

AVL ํŠธ๋ฆฌ AVL ํŠธ๋ฆฌ๋Š” ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ํŠธ๋ฆฌ ๋†’์ด์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ์ฆ‰, ์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œ ์‹œ์— ๊ท ํ˜•์ด ์–ด๊ธ‹๋‚˜๊ฒŒ ๋˜๋ฉด ์Šค์Šค๋กœ ํšŒ์ „ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋Š”, ์ž์ฒด ํž๋ง์ด ๊ฐ€๋Šฅํ•œ ํŠธ๋ฆฌ์ด๋‹ค. ์ด๋Ÿฌํ•œ AVL ํŠธ๋ฆฌ(a.k.a ๊ท ํ˜• ํŠธ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ์—ฐ์‚ฐ ์‹œ์— ๊ท ์ผํ•œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ O(logN)์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, ์ด๋Š” AVL ํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. n๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„ AVL ํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” O(logN)์ด๋‹ค. AVL ํŠธ๋ฆฌ์˜ ์ •ํ™•ํ•œ ์ •์˜๋ฅผ ์•Œ์•„๋ณด์ž. AVL ํŠธ๋ฆฌ๋Š” ์ž„์˜์˜ ๋…ธ๋“œ x์— ๋Œ€ํ•ด x์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ 1์„ ๋„˜์ง€ ์•Š๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค. AVL ํŠธ๋ฆฌ์˜ ํšŒ์ „ ์—ฐ์‚ฐ ํšŒ์ „ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ AVLํŠธ๋ฆฌ๋Š” ํšŒ์ „ ..

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue), ๊ทธ๋ฆฌ๊ณ  ํž™(Heap)

์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) : ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ•ญ๋ชฉ์— ์ ‘๊ทผ๊ณผ ์‚ญ์ œ, ์ž„์˜์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ•ญ๋ชฉ ์‚ฝ์ž…์„ ์ง€์›ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํ(Queue)๋ผ๊ณ  ํ•จ์€ ๋จผ์ € ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ๋ฐ, ์•ž์— ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ถ™์–ด์„œ ๋จผ์ € ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ €๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ์ธ๊ฒƒ์ด๋‹ค. ํž™(Heap)์ด๋ž€ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•ด์„œ ๊ณ ์•ˆ๋œ ์™„์ „์ด์ง„ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋˜ํ•œ ๋ถ€๋ชจ์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ž์‹์˜ ์šฐ์„ ์ˆœ์œ„ ๋ณด๋‹ค ํฌ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์šฐ์„  ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํž™์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ํž™์˜ ์ข…๋ฅ˜๋Š” ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ตœ์†Œ ํž™(Minimum Heap) : ํ‚ค๊ฐ€ ์ž‘์„์ˆ˜๋ก ๋†’์€ ์šฐ์„ ์ˆœ์œ„ Key(๋ถ€๋ชจ๋…ธ๋“œ) < Key(์ž์‹ ๋…ธ๋“œ) ์ตœ๋Œ€ ํž™(Maximum Heap) : ํ‚ค๊ฐ€ ํด ..

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ํ•ด์‹œ ํ…Œ์ด๋ธ”, ํ•ด์‹ฑ, ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€?

ํ•ด์‹œ ํ…Œ์ด๋ธ” ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ ์‹œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์€ ์ตœ์†Œ O(logn)์ด ๋‚˜์˜ค๋Š”๋ฐ,(์ด ๊ฒฝ์šฐ๋Š” AVL ํŠธ๋ฆฌ) ์ด๋ณด๋‹ค ๋น ๋ฅธ ์—ฐ์‚ฐ ์†๋„๋ฅผ ์œ„ํ•ด ์ œ์‹œ๋œ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ‚ค์™€ 1์ฐจ์› ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์˜ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•ด ํ‚ค(ํ•ญ๋ชฉ)์„ ์ง€์ •ํ•œ๋‹ค. ํ‚ค๋ฅผ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€ ์•Š๋ƒ๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํ‚ค๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ์ผ๋ จ์˜ ๋ฌธ์ž์—ด์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ•ด์‹ฑ : ํ‚ค๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€ํ™˜ํ•œ ํ•ด์‹œ ๊ฐ’์„ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ ์ด์šฉํ•˜์—ฌ ํ•ญ๋ชฉ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด๋ณด์ž๋ฉด, ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ‚ค๋“ค์„ ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ธ๋ฐ, ์ด๋•Œ ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ‚ค๋“ค์„ ๊ท ๋“ฑํ•˜๊ฒŒ ์ธ..

๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ํƒ์ƒ‰ ํŠธ๋ฆฌ : 2-3 ํŠธ๋ฆฌ, B ํŠธ๋ฆฌ์— ๊ด€ํ•˜์—ฌ

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

TIlearn
'๐Ÿ€ Knowledge/์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก