Heap์ด๋?
๐ ๊ฐ๋
์ฐ์ ์์ํ(Priority Queue)์์ ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ์ฐพ๋ ๋ฐ ์์๋๋ ์๊ฐ์ด O(1)์ด๋ค.
ํ์ง๋ง ๋ ธ๋ ์์ ์, ํ๊ตฌ์กฐ ์ ์งํ๊ธฐ ์ํด heapify๊ณผ์ ์ ๊ฑฐ์ณ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ค. ์ด๋ ๊ฒฐ๊ตญ O(log n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๐ ํน์ง
Tree ์ค ๋ฐฐ์ด์ ๊ธฐ๋ฐํ ์์ ์ด์ง ํธ๋ฆฌ ํ์(์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์๋๋ก ์ฐจ๊ณก์ฐจ๊ณก ์ฑ์์ง ์ด์ง ํธ๋ฆฌ)์ ๊ฐ์ง๋ฉฐ, ์ต๋ํ/์ต์ํ ๋ ์ข ๋ฅ๊ฐ ์๋ค.
- ์ต๋ ํ key(๋ถ๋ชจ ๋ ธ๋) ≥ key(์์ ๋ ธ๋)
- ์ต์ ํ key(๋ถ๋ชจ ๋ ธ๋) ≤ key(์์ ๋ชจ๋)

์์ ์ด์ง ํธ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ฝ์ /์ญ์ ์ฐ์ฐ์ด ๋ฐฐ์ด์ ๊ฐ์ฅ ๋์์ ๋ฐ์ํ๋ค. BST์ ๊ฒฝ์ฐ ์ฝ์ /์ญ์ ๋ฅผ ์ํด์ ๊ฐ์ ์ฐพ์์ฃผ๋ ๊ณผ์ ์ด ํ์ํ์ง๋ง, ํ์ ์ผ๋จ ๋ฐฐ์ด์ ๋งจ ๋์์ ์์ ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ BST๋ณด๋ค ๋น ๋ฅด๋ค.
Leetcode ๋ฌธ์ ๋ฅผ ํตํ Heap ๊ตฌํ
Python์์๋ heapq๋ฅผ ํตํด Heap์ ๊ตฌํํ ์ ์๋ค. ํด๋น ํจ์๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ง์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ํตํด ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ๊ฒ์ด๋ค.
๋ฌธ์ : https://leetcode.com/problems/relative-ranks/
Relative Ranks - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
1. Heapq ํจ์๋ฅผ ํ์ฉํ ํ์ด
2. ์ง์ ๊ตฌํํ์ฌ ์์ฑํ ํ์ด
'Engineering ๐ป > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Algorithm] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋จ ์ ๋ฆฌ์ Python ๊ตฌํ (๋ฒ๋ธ์ ๋ ฌ, ์ ํ์ ๋ ฌ, ํต์ ๋ ฌ, ๋ณํฉ์ ๋ ฌ, ํ์ ๋ ฌ) (0) | 2022.02.21 |
|---|---|
| [์๊ณ ๋ฆฌ์ฆ] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (feat. Leetcode) (0) | 2022.02.06 |
| [์๋ฃ๊ตฌ์กฐ] Binary Search Tree (0) | 2022.02.05 |
| [Leetcode/Python] 5. Longest Palindromic Substring (0) | 2022.01.12 |
| [Leetcode/Python] 48. Rotate Image (0) | 2022.01.12 |