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

๋ชฉ๋กํž™ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… (1)

Hey Tech

[์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ 2. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ? 3. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜ 4. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋™์ž‘ ๊ณผ์ •(์ตœ์†Œ ํž™) 4.1. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… 4.2. ๋ฐ์ดํ„ฐ ์‚ญ์ œ 5. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„(Python) 5.1. heapq ์…‹์—… 5.2. ํž™ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…(heappush) 5.3. ํž™ ๋ฐ์ดํ„ฐ ์‚ญ์ œ(heappop) 5.4. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ€์žฅ ๋†’์€(ํ˜น์€ ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„(e.g., ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’)๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ *์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Complete Binary Tree) ๊ธฐ๋ฐ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋†’์€(๋˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ๋ฃจํŠธ ๋…ธ๋“œ(root node)์— ์˜ค๋Š” ๊ฒŒ ํŠน์ง•์ž…๋‹ˆ๋‹ค. * ์™„..