๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ž๋ฃŒ๊ตฌ์กฐ (11)

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

์šฐ์„ ์ˆœ์œ„ ํ (Priority Queue)

์šฐ์„ ์ˆœ์œ„ ํ๋ž€? ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•จ. ๊ตฌํ˜„ ํ•˜๋Š” ๋ฐฉ๋ฒ• 1) ๋‹จ์ˆœํžˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ 2) ํž™(heap)์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ ์šฐ์„  ์ˆœ์œ„ ํ ๊ตฌํ˜„ ๋ฐฉ์‹ ์‚ฝ์ž… ์‹œ๊ฐ„ ์‚ญ์ œ ์‹œ๊ฐ„ ๋ฆฌ์ŠคํŠธ O(1) O(N) ํž™(Heap) O(logN) O(logN) ๋‹จ์ˆœํžˆ N๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํž™์— ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๋ชจ๋‘ ๊บผ๋‚ด๋Š” ์ž‘์—…์€ ์ •๋ ฌ๊ณผ ๋™์ผํ•˜๋‹ค. ์ด ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(NlogN) ํž™(Heap)์˜ ํŠน์ง• ํž™์€ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…์ด๋‹ค. ํž™์—์„œ๋Š” ํ•ญ์ƒ ๋ฃจํŠธ ๋…ธ๋“œ(root node)๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. ์ตœ์†Œ ํž™(min heap) ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค ๋”ฐ๋ผ์„œ ๊ฐ’์ด ์ž‘์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์šฐ์„ ์ ์œผ๋กœ ์ œ๊ฑฐ๋œ๋‹ค. ์ตœ๋Œ€ ํž™(max he..