πŸ–₯️ Study Note/Data Structure

    μš°μ„  μˆœμœ„ 큐 (C++ STL의 priority queue)

    μš°μ„  μˆœμœ„ 큐 (C++ STL의 priority queue)

    μš°μ„  μˆœμœ„ 큐? μš°μ„  μˆœμœ„ νλŠ” 자료ꡬ쑰 쀑 ν•˜λ‚˜λ‘œ, 데이터λ₯Ό μš°μ„ μˆœμœ„μ— 따라 μ •λ ¬ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€. μš°μ„  μˆœμœ„ 큐의 κ΅¬ν˜„ 방법 μš°μ„  μˆœμœ„ νλŠ” λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ κ΅¬ν˜„λ  수 μžˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ 일반적인 κ΅¬ν˜„ 방법은 배열을 μ΄μš©ν•œ κ΅¬ν˜„κ³Ό νž™μ„ μ΄μš©ν•œ κ΅¬ν˜„μž…λ‹ˆλ‹€. 배열을 μ΄μš©ν•œ κ΅¬ν˜„μ€ κ°„λ‹¨ν•˜μ§€λ§Œ, μ‚½μž…μ΄λ‚˜ μ‚­μ œκ°€ 일어날 λ•Œλ§ˆλ‹€ μ •λ ¬ν•΄μ•Όν•˜λ―€λ‘œ μ‹œκ°„ λ³΅μž‘λ„κ°€ λ†’μ•„μ§€λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€. 반면, νž™μ„ μ΄μš©ν•œ κ΅¬ν˜„μ€ μ‚½μž…κ³Ό μ‚­μ œκ°€ κ°„λ‹¨ν•˜λ©°, μ‹œκ°„ λ³΅μž‘λ„κ°€ O(log N)으둜 μœ μ§€λ©λ‹ˆλ‹€. μš°μ„  μˆœμœ„ 큐의 ꡬ쑰 μš°μ„  μˆœμœ„ νλŠ” 보톡 νž™(Heap) 자료ꡬ쑰λ₯Ό ν™œμš©ν•˜μ—¬ κ΅¬ν˜„λ©λ‹ˆλ‹€. νž™μ€ μ΄μ§„νŠΈλ¦¬μ˜ μΌμ’…μœΌλ‘œ, μ΅œλŒ€κ°’ λ˜λŠ” μ΅œμ†Œκ°’μ„ λΉ λ₯΄κ²Œ μ°Ύμ•„λ‚΄κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. νž™μ€ λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ κ°€μ§‘λ‹ˆλ‹€. μ™„μ „ 이진 트리(Co..