๋ชฉ์ฐจ
-
1. ์ฐ์ ์์ ํ
-
2. ํ
-
2.1 ํ ์กฐ๊ฑด Heap condition
-
2.2 ์์ ํธ๋ฆฌ Complete tree
-
3. ํ ์์ฑ
-
4. ํ ์ฝ์
-
5. ๋ง์ง๋ง ๋ ธ๋ ํ์
-
6. ํ ์ญ์
-
7. ํ ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด
-
8. ๋ค์ ์ดํด๋ณด๋ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์
-
9. ๋ฐฐ์ด๋ก ํ ๊ตฌํํ๊ธฐ
-
9.1 ๋ฐฐ์ด ๊ธฐ๋ฐ ํ ์ํ
-
9.2 ๋์ ๊ตฌํ
-
10. ์ฐ์ ์์ ํ๋ก ์ฐ์ด๋ ํ
- ํ์ ๋ฐ์ดํฐ ์ธํธ์์ ๊ฐ์ฅ ํฐ, ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ ์์๋ฅผ ๊ณ์ ์์๋ด์ผ ํ ๋ ํนํ ์ ์ฉํ๋ค.
- ํ์ ๊ธฐ๋ฅ์ ์ ๋๋ก ํ์ ํ๊ธฐ ์ํด ์ง๊ธ๊น์ง ๋ณด์ง ๋ชปํ๋ ์๋ก์ด ์๋ฃ ๊ตฌ์กฐ์ธ ์ฐ์ ์์ ํ๋ถํฐ ์ดํด๋ณด์.
1. ์ฐ์ ์์ ํ
- 9.5์ฅ์์ ๋ฐฐ์ ๋ ํ๋ FIFO ๋ฐฉ์์ผ๋ก ํญ๋ชฉ์ ์ฒ๋ฆฌํ๋ ๋ฆฌ์คํธ์๋ค.
- ๊ทผ๋ณธ์ ์ผ๋ก ํ ๋์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ณ ํ ์์์๋ง ์ ๊ทผ๊ณผ ์ญ์ ๋ฅผ ์ํํ๋ค.
- ํ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ ์์๋ฅผ ๋ฐ๋ผ์ผ ํ๋ค.
- ์ฐ์ ์์ ํ(Priority Queue)๋ ์ญ์ ์ ์ ๊ทผ์ ์์ด ์ ํ์ ์ธ ํ์ ํก์ฌํ๋ ์ฝ์ ์ ์์ด ์ ๋ ฌ๋ ๋ฐฐ์ด๊ณผ ๋น์ทํ ๋ฆฌ์คํธ๋ค.
- ์ฆ ์ฐ์ ์์ ํ ์์์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์ญ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ ํน์ ์์๋๋ก ์ ๋ ฌ์ํจ๋ค.
- ์ฐ์ ์์ ํ๋ ์ถ์ ๋ฐ์ดํฐ ํ์ ์ ํ ์๋ค. ๋ค์ ๋งํด ๊ธฐ์ด์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌํํ ์ ์๋ค.
- ์ฐ์ ์์ ํ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ ค๋ฉด ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ด์ฉํ๋ฉด ๋๋ค.
- ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ค์์ ์ ์ฝ์ด ํ์ํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ํญ์ ์ ์ ํ ์์๋ฅผ ์ ์งํ๋ค.
- ๋ฐ์ดํฐ๋ ๋ฐฐ์ด ๋์์๋ง ์ญ์ ํ๋ค.(๋ฐฐ์ด์ ๋์ด ์ฐ์ ์์ ํ์ ์์ด๋ค.)
- ์ฐ์ ์์ ํ์ ์ฃผ์ ์ฐ์ฐ์ ์ฝ์ ๊ณผ ์ญ์ ๋ค.
- 1์ฅ์์ ๋ดค๋ฏ์ด ๋ฐฐ์ด ์์์ ์ญ์ ๋ ์ธ๋ฑ์ค 0์ ๋น ์๋ฆฌ๋ฅผ ๋ฉ์ฐ๊ธฐ ์ํด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ฒจ์ผ ํ๋ฏ๋ก O(N)์ด๋ค.
- ํ์ง๋ง ์๋ฆฌํ๊ฒ ๊ตฌํ์ ๋ฐ๊ฟ ๋ฐฐ์ด ๋์ ์ฐ์ ์์ ํ ์์ผ๋ก ์ผ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํญ์ ๋ฐฐ์ด ๋์์ ์ญ์ ํ๋ O(1)์ด๋ค.
- ์ฝ์ ์ ์ด๋จ๊น?
- ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ฝ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์๋ฆฌ๋ฅผ ์์๋ด๊ธฐ ์ํด ๋ฐฐ์ด์ ์์๋ฅผ ๋ชจ๋ ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ O(N)์ด๋ค.
- ๋ฐ๋ผ์ ๋ฐฐ์ด ๊ธฐ๋ฐ ์ฐ์ ์์ ํ๋ ์ญ์ ๊ฐ O(1), ์ฝ์ ์ด O(N)์ด๋ค.
- ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋จ๊น?
2. ํ
- ํ์๋ ๋ช ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ผ๋ ์ด์ง ํ(Binary Heap)์ ๋ณด์.
- ์ด์ง ํ์ ํน์ํ ์ข ๋ฅ์ ์ด์ง ํธ๋ฆฌ๋ค.
- ์ด์ง ํธ๋ฆฌ๋ ๊ฐ ๋ ธ๋์ ์ต๋ ์์ ๋ ธ๋๊ฐ ๋์ธ ํธ๋ฆฌ์๋ค.
- ์ด์ง ํ์๋ ์ต๋ ํ(max-heap)๊ณผ ์ต์ ํ(min-heap) ๋ ์ข ๋ฅ๊ฐ ์๋ค.
- ํ์ ๋ค์์ ์กฐ๊ฑด์ ๋ฐ๋ฅด๋ ์ด์ง ํธ๋ฆฌ๋ค.
- ๊ฐ ๋ ธ๋์ ๊ฐ์ ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋์ ๊ฐ๋ณด๋ค ์ปค์ผ ํ๋ค. ์ด ๊ท์น์ ํ ์กฐ๊ฑด(Heap Condition)์ด๋ผ ๋ถ๋ฅธ๋ค.
- ํธ๋ฆฌ๋ ์์ (Complete)ํด์ผ ํ๋ค.
2.1 ํ ์กฐ๊ฑด Heap condition
- ์ต๋ ํ์์ ํ ์กฐ๊ฑด์ด๋ ๊ฐ ๋ ธ๋์ ๊ฐ์ด ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋๋ณด๋ค ์ปค์ผ ํ๋ค๋ ๋ป์ด๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ์์ ๊ฐ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์์ ๊ทธ ๋ ธ๋๋ณด๋ค ํฌ๋ค.
- ๋ฐ๋๋ก, ํ์์ ๋ ธ๋๋ ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์๋ณด๋ค ํฌ๋ค.
- ์ต์ ํ์ ์ต๋ ํ์ ํ ์กฐ๊ฑด์ ๋ฐ๋ ์กฐ๊ฑด์ ๊ฐ์ง๋ค. ์ฆ, ๊ฐ ๋ ธ๋์ ๊ฐ์ด ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋๋ณด๋ค ์๋ค.
2.2 ์์ ํธ๋ฆฌ Complete tree
- ์์ ํธ๋ฆฌ๋ ๋น ์ง ๋ ธ๋ ์์ด ๋ ธ๋๊ฐ ์์ ํ ์ฑ์์ง ํธ๋ฆฌ๋ค.
- ๋ฐ๋ผ์ ํธ๋ฆฌ์ ๊ฐ ์ธต(๋ ๋ฒจ)์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์์ ๋ ๋ชจ๋ ์๋ฆฌ๋ง๋ค ๋ ธ๋๊ฐ ์๋ค.
- ํ์ง๋ง ๋ฐ๋ฅ ์ค์๋ ๋น ์๋ฆฌ๊ฐ ์์ ์ ์๋ค.
- ๋จ ๋น ์๋ฆฌ์ ์ค๋ฅธ์ชฝ์ผ๋ก๋ ์ด๋ค ๋ ธ๋๋ ์์ด์ผ ํ๋ค.
3. ํ ์์ฑ
- ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ํน์ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ๋์ง๋ง ์ด๋ฌํ ์ ๋ ฌ์ ํ์์ ๊ฐ์ ๊ฒ์ํ๋ ๋ฐ ์ ํ ๋์์ด ๋์ง ์๋๋ค.
- ํ์๋ ์์์ด ์กฐ์๋ณด๋ค ํด ์ ์๋ค๋ ๋ถ๋ช ํ ์์๊ฐ ์์ง๋ง ๊ฐ์ ๊ฒ์ํ๊ธฐ์๋ ๋ถ์กฑํ๋ค.
- ๋ฐ๋ผ์ ํ์ ์ด์ง ํ์ ํธ๋ฆฌ์ ๋นํด ์ฝํ ์ ๋ ฌ(weakly ordered)์ด๋ผ๊ณ ๋งํ๋ค.
- ํ์์๋ ๋ฃจํธ ๋ ธ๋๊ฐ ํญ์ ์ต๋๊ฐ์ด๋ค.
- ํ์ ์ฃผ์ ์ฐ์ฐ์ ์ฝ์ ๊ณผ ์ญ์ ๋ค.
- ํ์์ ๊ฒ์ํ๋ ค๋ฉด ๊ฐ ๋ ธ๋๋ฅผ ๊ฒ์ํด์ผ ํ๋ฏ๋ก ํ์ผ๋ก๋ ๋๊ฐ ๊ฒ์ ์ฐ์ฐ์ ๊ตฌํํ์ง ์๋๋ค.
- ํ์๋ ๋ง์ง๋ง ๋ ธ๋(last node)๊ฐ ์๋ค. ์ด๋ ๋ฐ๋ฅ ๋ ๋ฒจ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์์นํ ๋ ธ๋๋ค.
4. ํ ์ฝ์
- ํ์ ์ ๊ฐ์ ์ฝ์
ํ๋ ค๋ฉด ๋ค์ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ค.
- ์ ๊ฐ์ ํฌํจํ๋ ๋ ธ๋๋ฅผ ์์ฑํ๊ณ ๋ฐ๋ฅ ๋ ๋ฒจ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ ธ๋ ์์ ์ฝ์ ํ๋ค. ์ฆ, ์ด ๊ฐ์ด ํ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ ๋๋ค.
- ์๋ก ์ฝ์ ํ ๋ ธ๋์ ๊ทธ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋น๊ตํ๋ค.
- ์ ๋ ธ๋๊ฐ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํฌ๋ฉด ์ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ์ค์ํ๋ค.
- ์ ๋ ธ๋๋ณด๋ค ํฐ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋ง๋ ๋๊น์ง 3๋ฒ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ ๋ ธ๋๋ฅผ ํ ์๋ก ์ฌ๋ฆฐ๋ค.
- ์ ๋ ธ๋๋ฅผ ํ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ ธ๋๋ฅผ ์๋ก ํธ๋ฆฌํด๋ง(trickling)ํ๋ค๊ณ ํํํ๋ค.
- ํ ์ฝ์ ์ ํจ์จ์ฑ์ O(logN)์ด๋ค.
5. ๋ง์ง๋ง ๋ ธ๋ ํ์
- ์ฝ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋นํ ๊ฐ๋จํด ๋ณด์ธ๋ค. ๊ทธ๋ฌ๋ ์์ ๋ฌธ์ ๊ฐ ์๋ค. ๋ง์ง๋ง ๋ ธ๋ ์๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์์ผ ํ ๊น?
- ์ด ๋ฌธ์ ๋ฅผ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ผ๊ณ ๋ถ๋ฅด์. ์ฐ์ ์ญ์ ์ฐ์ฐ์ ์์๋ณด๊ณ , ๋์ค์ ๋ค๋ฃฌ๋ค.
6. ํ ์ญ์
- ํ์์ ๊ฐ์ ์ญ์ ํ๋ ค๋ฉด ๋ฃจํธ ๋ ธ๋๋ง ์ญ์ ํ ์ ์๋ค๋ ์ ์ ๋จผ์ ์์์ผ ํ๋ค.
- ์ด๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ํญ๋ชฉ๋ง ์ ๊ทผํ๊ณ ์ญ์ ํ๋ ์ฐ์ ์์ ํ์ ๋์ ๋ฐฉ์๊ณผ ์ผ์นํ๋ค.
- ํ์ ๋ฃจํธ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๋ฃจํธ ๋ ธ๋ ์๋ฆฌ๋ก ๋ฎ์ด์ด๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ ๋ฃจํธ ๋ ธ๋๋ ์ญ์ ๋๋ค.
- ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ ํ ์๋ฆฌ๊น์ง ํธ๋ฆฌํด๋งํ๋ค.
- ์ด๋ป๊ฒ ๋ฃจํธ ๋
ธ๋๋ฅผ ์ ์ ํ ์๋ฆฌ๊น์ง ํธ๋ฆฌํด๋งํ ์ ์์๊น? ํธ๋ฆฌํด๋งํ๋ ๋
ธ๋๋ฅผ ํธ๋ฆฌํด ๋
ธ๋๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๋ ์์์ ํ์ธํด ์ด๋ ์ชฝ์ด ๋ ํฐ์ง ํ์ธํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋๊ฐ ๋ ์์ ๋ ธ๋ ์ค ํฐ ๋ ธ๋๋ณด๋ค ์์ผ๋ฉด ํฐ ๋ ธ๋์ ํธ๋ฆฌํด ๋ ธ๋๋ฅผ ์ค์ํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๊ทธ ๋ ธ๋๋ณด๋ค ํฐ ์์์ด ์์ ๋๊น์ง 1, 2๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๋ ์์ ์ค ํฐ ๋ ธ๋๋ฅผ ์ค์ํ๋ ์ด์ ๋ ์์ ๋ ธ๋์ ์ค์ํ๋ฉด ํ ์กฐ๊ฑด์ด ๋ฐ๋ก ๊นจ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ฆ, โ๋ ์์ ์ค ํฐ ๋ ธ๋โ๊ฐ โ๋ ์์ ์ค ์์ ๋ ธ๋โ์ ์์์ด ๋๋ค.
- ํ์์ ์ญ์ ํ๋ ค๋ฉด ๋ฃจํธ๋ถํฐ ์์ํด log(N)๊ฐ ๋ ๋ฒจ์ ๊ฑฐ์ณ ๋ ธ๋๋ฅผ ํธ๋ฆฌํด๋งํด์ผ ํ๋ฏ๋ก ์ฝ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก O(logN)์ด๋ค.
7. ํ ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด
์ ๋ ฌ๋ ๋ฐฐ์ด ํ
์ฝ์ | O(N) | O(logN) |
์ญ์ | O(1) | O(logN) |
- ๋ค์ ๋น๊ตํด ๋ณด์.
์ ๋ ฌ๋ ๋ฐฐ์ด ํ
์ฝ์ | ๋๋ฆผ | ๋งค์ฐ ๋น ๋ฆ |
์ญ์ | ๋ฌด์งํ๊ฒ ๋น ๋ฆ | ๋งค์ฐ ๋น ๋ฆ |
- ๋๋ก ๋ฌด์งํ๊ฒ ๋น ๋ฅด์ง๋ง ๋๋ฆด ์๋ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค ์ผ๊ด๋๊ฒ ๋งค์ฐ ๋น ๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ๋ซ๋ค.
- ๋ณดํต ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฝ์ ๊ณผ ์ญ์ ๋ฅผ ๊ฑฐ์ ๋น์ทํ ๋น์จ๋ก ์ํํ๋ค.
8. ๋ค์ ์ดํด๋ณด๋ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์
- ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ ์ ์ ์ฝ์ ๊ณผ ์ญ์ ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ ๊ผญ ํ์ํ์ง๋ถํฐ ์์๋ณด์.
- ์ ๊ฐ์ ํ์ ๋ค๋ฅธ ์์น์ ์ฝ์ ํ๋ฉด ์ ๋ ๊น?
- ์ญ์ ํ ๋ ๋ฃจํธ ๋ ธ๋๋ฅผ ๋ง์ง๋ง ๋ ธ๋ ๋์ ๋ค๋ฅธ ๋ ธ๋๋ก ๋์ฒดํ ์๋ ์์๊น?
- ๋ค๋ฅธ ๋
ธ๋์ ๋ฐ๊พธ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด ๋ณด์.
- ํ์ด ๋ถ์์ ํด์ง๋ค๋ ์ฌ์ค์ ๊ณง ๊นจ๋ซ๊ฒ ๋๋ค.
- ์ ํ์์๋ ์์ ์ฑ(completeness)์ด ๊ทธํ ๋ก ์ค์ํ ๊น?
- ์ด์ ๋ ๊ท ํ ์กํ ํ์ผ๋ก ์ ์งํ๊ณ ์ถ์ด์๋ค.
- ๊ท ํ ์กํ ํ์ ์ผ๊ด๋๊ฒ O(logN)์์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
- ๊ทธ๋ฌ๋ ๋ถ๊ท ํ์ด ์ฌํ ํธ๋ฆฌ๋ ์ต์ ์ ๊ฒฝ์ฐ O(N) ๋จ๊ณ๊ฐ ํ์ํ๋ค.
9. ๋ฐฐ์ด๋ก ํ ๊ตฌํํ๊ธฐ
- ๋ง์ง๋ง ๋ ธ๋ ์ฐพ๊ธฐ๋ ํ ์ฐ์ฐ์ ํต์ฌ์ด๊ณ ๋ํ ํจ์จ์ ์ผ๋ก ์ฐพ์์ผ ํ๋ฏ๋ก ์ฃผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํด ํ์ ๊ตฌํํ๋ค.
- ์ฆ, ํ ์์ฒด๊ฐ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ์ถ์ ๋ฐ์ดํฐ ํ์ ์ผ ์ ์๋ค.
- ํ์ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ ์ด์ ๋ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ค. ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น?
- ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํ์ ๊ตฌํํ๋ฉด ๋ง์ง๋ง ๋ ธ๋๋ ํญ์ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ค.

- ์์ฃผ ๊ฐ๋จํ๊ฒ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ฐพ์ ์ ์๋ค.
9.1 ๋ฐฐ์ด ๊ธฐ๋ฐ ํ ์ํ
- ์์ ๋ดค๋ฏ์ด ํ ์ฝ์ ๊ณผ ์ญ์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ๋ฅํ๋ ค๋ฉด ํ์ ํธ๋ฆฌํด๋งํ ์ ์์ด์ผ ํ๋ค.
- ํ์ง๋ง ํ์ด ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ธ๋ฐ, ์ด๋ค ๋ ธ๋๊ฐ ์ด๋ค ๋ ธ๋์ ์ฐ๊ฒฐ๋๋์ง ์ด๋ป๊ฒ ์ ์ ์์๊น?
- ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ ๋
ธ๋์ ์ธ๋ฑ์ค๋ฅผ ํ ๋นํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ ํน์ฑ์ ํญ์ ๋ง์กฑํ๋ค.
- ์ด๋ค ๋ ธ๋์ ์ผ์ชฝ ์์์ index * 2 + 1 ์ ์์นํ๋ค.
- ์ด๋ค ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์์ index * 2 + 2 ์ ์์นํ๋ค.
9.2 ๋์ ๊ตฌํ
- ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์จ์ ํ์ ๊ตฌํํ์ผ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก๋ ๊ตฌํํ ์ ์๋ค.
- ์ฌ์ค ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด 15์ฅ์ ๋์๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋น๋กฏํด ์ด๋ค ์ข ๋ฅ์ ์ด์ง ํธ๋ฆฌ๋ ๊ตฌํํ ์ ์๋ค.
- ํ์ง๋ง ํ์ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ฝ๊ฒ ์ฐพ์์ค๋ค๋ ์ ์์ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ฉด ์ ๋ฆฌํ ์ฒซ ์ด์ง ํธ๋ฆฌ ์ฌ๋ก๋ค.
10. ์ฐ์ ์์ ํ๋ก ์ฐ์ด๋ ํ
- ์ฐ์ ์์ ํ๋ก ๋์๊ฐ ๋ณด์.
- ์ฐ์ ์์ ํ์ ์ฃผ์ ๋ฉ์๋๋ ํ์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ํญ๋ชฉ์ ๋ฐ๋ก ์ ๊ทผํ๋ ๊ฒ์ด๋ค.
- ๊ทธ๋์ ์ฐ์ ์์ ํ ๊ตฌํ์๋ ํ์ด ๋ฑ ์ด์ธ๋ฆฐ๋ค.
- ํ์์๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ํญ๋ชฉ์ด ํญ์ ๋ฃจํธ ๋ ธ๋์ ์์ผ๋ ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ค.
- ๊ฒฐ๊ตญ ํ์ ์ฝํ ์ ๋ ฌ์ด ๊ต์ฅํ ์ฅ์ ์ผ๋ก ์์ฉํ๋ค.
- ์๋ฒฝํ ์ ๋ ฌํ ํ์๊ฐ ์์ผ๋ ์ ๊ฐ์ ํญ์ O(logN)์๊ฐ์ ์ฝ์ ํ ์ ์๋ค.
- ๋์์ ํ์ ์ธ์ ๋ ํ์ํ ํญ๋ชฉ์, ์ฆ ํ์ ์ต๋๊ฐ์ ํญ์ ์ ๊ทผํ ์ ์์ ๋งํผ ์ ๋ ฌ๋์ด ์๋ค.
- ๋ค์ ์ฅ๋ถํฐ ๋์ด๋ ๊ธ์์น ์์ โฆ
'๐๏ธ ์ฑ & ๊ฐ์ ์ ๋ฆฌ > ๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
18์ฅ ๊ทธ๋ํ๋ก ๋ญ๋ ์ง ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.03.08 |
---|---|
17์ฅ ํธ๋ผ์ด(trie)ํด ๋ณด๋ ๊ฒ๋ ๋์์ง ์๋ค (0) | 2023.03.06 |
15์ฅ ์ด์ง ํ์ ํธ๋ฆฌ๋ก ์๋ ํฅ์ (0) | 2022.12.26 |
14์ฅ ๋ ธ๋ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ (1) | 2022.12.09 |
13์ฅ ์๋๋ฅผ ๋์ด๋ ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ (0) | 2022.12.08 |
- ํ์ ๋ฐ์ดํฐ ์ธํธ์์ ๊ฐ์ฅ ํฐ, ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ ์์๋ฅผ ๊ณ์ ์์๋ด์ผ ํ ๋ ํนํ ์ ์ฉํ๋ค.
- ํ์ ๊ธฐ๋ฅ์ ์ ๋๋ก ํ์ ํ๊ธฐ ์ํด ์ง๊ธ๊น์ง ๋ณด์ง ๋ชปํ๋ ์๋ก์ด ์๋ฃ ๊ตฌ์กฐ์ธ ์ฐ์ ์์ ํ๋ถํฐ ์ดํด๋ณด์.
1. ์ฐ์ ์์ ํ
- 9.5์ฅ์์ ๋ฐฐ์ ๋ ํ๋ FIFO ๋ฐฉ์์ผ๋ก ํญ๋ชฉ์ ์ฒ๋ฆฌํ๋ ๋ฆฌ์คํธ์๋ค.
- ๊ทผ๋ณธ์ ์ผ๋ก ํ ๋์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ณ ํ ์์์๋ง ์ ๊ทผ๊ณผ ์ญ์ ๋ฅผ ์ํํ๋ค.
- ํ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ ์์๋ฅผ ๋ฐ๋ผ์ผ ํ๋ค.
- ์ฐ์ ์์ ํ(Priority Queue)๋ ์ญ์ ์ ์ ๊ทผ์ ์์ด ์ ํ์ ์ธ ํ์ ํก์ฌํ๋ ์ฝ์ ์ ์์ด ์ ๋ ฌ๋ ๋ฐฐ์ด๊ณผ ๋น์ทํ ๋ฆฌ์คํธ๋ค.
- ์ฆ ์ฐ์ ์์ ํ ์์์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์ญ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ ํน์ ์์๋๋ก ์ ๋ ฌ์ํจ๋ค.
- ์ฐ์ ์์ ํ๋ ์ถ์ ๋ฐ์ดํฐ ํ์ ์ ํ ์๋ค. ๋ค์ ๋งํด ๊ธฐ์ด์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌํํ ์ ์๋ค.
- ์ฐ์ ์์ ํ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ ค๋ฉด ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ด์ฉํ๋ฉด ๋๋ค.
- ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ค์์ ์ ์ฝ์ด ํ์ํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ํญ์ ์ ์ ํ ์์๋ฅผ ์ ์งํ๋ค.
- ๋ฐ์ดํฐ๋ ๋ฐฐ์ด ๋์์๋ง ์ญ์ ํ๋ค.(๋ฐฐ์ด์ ๋์ด ์ฐ์ ์์ ํ์ ์์ด๋ค.)
- ์ฐ์ ์์ ํ์ ์ฃผ์ ์ฐ์ฐ์ ์ฝ์ ๊ณผ ์ญ์ ๋ค.
- 1์ฅ์์ ๋ดค๋ฏ์ด ๋ฐฐ์ด ์์์ ์ญ์ ๋ ์ธ๋ฑ์ค 0์ ๋น ์๋ฆฌ๋ฅผ ๋ฉ์ฐ๊ธฐ ์ํด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ฒจ์ผ ํ๋ฏ๋ก O(N)์ด๋ค.
- ํ์ง๋ง ์๋ฆฌํ๊ฒ ๊ตฌํ์ ๋ฐ๊ฟ ๋ฐฐ์ด ๋์ ์ฐ์ ์์ ํ ์์ผ๋ก ์ผ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํญ์ ๋ฐฐ์ด ๋์์ ์ญ์ ํ๋ O(1)์ด๋ค.
- ์ฝ์ ์ ์ด๋จ๊น?
- ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ฝ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์๋ฆฌ๋ฅผ ์์๋ด๊ธฐ ์ํด ๋ฐฐ์ด์ ์์๋ฅผ ๋ชจ๋ ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ O(N)์ด๋ค.
- ๋ฐ๋ผ์ ๋ฐฐ์ด ๊ธฐ๋ฐ ์ฐ์ ์์ ํ๋ ์ญ์ ๊ฐ O(1), ์ฝ์ ์ด O(N)์ด๋ค.
- ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋จ๊น?
2. ํ
- ํ์๋ ๋ช ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ผ๋ ์ด์ง ํ(Binary Heap)์ ๋ณด์.
- ์ด์ง ํ์ ํน์ํ ์ข ๋ฅ์ ์ด์ง ํธ๋ฆฌ๋ค.
- ์ด์ง ํธ๋ฆฌ๋ ๊ฐ ๋ ธ๋์ ์ต๋ ์์ ๋ ธ๋๊ฐ ๋์ธ ํธ๋ฆฌ์๋ค.
- ์ด์ง ํ์๋ ์ต๋ ํ(max-heap)๊ณผ ์ต์ ํ(min-heap) ๋ ์ข ๋ฅ๊ฐ ์๋ค.
- ํ์ ๋ค์์ ์กฐ๊ฑด์ ๋ฐ๋ฅด๋ ์ด์ง ํธ๋ฆฌ๋ค.
- ๊ฐ ๋ ธ๋์ ๊ฐ์ ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋์ ๊ฐ๋ณด๋ค ์ปค์ผ ํ๋ค. ์ด ๊ท์น์ ํ ์กฐ๊ฑด(Heap Condition)์ด๋ผ ๋ถ๋ฅธ๋ค.
- ํธ๋ฆฌ๋ ์์ (Complete)ํด์ผ ํ๋ค.
2.1 ํ ์กฐ๊ฑด Heap condition
- ์ต๋ ํ์์ ํ ์กฐ๊ฑด์ด๋ ๊ฐ ๋ ธ๋์ ๊ฐ์ด ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋๋ณด๋ค ์ปค์ผ ํ๋ค๋ ๋ป์ด๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ์์ ๊ฐ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์์ ๊ทธ ๋ ธ๋๋ณด๋ค ํฌ๋ค.
- ๋ฐ๋๋ก, ํ์์ ๋ ธ๋๋ ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์๋ณด๋ค ํฌ๋ค.
- ์ต์ ํ์ ์ต๋ ํ์ ํ ์กฐ๊ฑด์ ๋ฐ๋ ์กฐ๊ฑด์ ๊ฐ์ง๋ค. ์ฆ, ๊ฐ ๋ ธ๋์ ๊ฐ์ด ๊ทธ ๋ ธ๋์ ๋ชจ๋ ์์ ๋ ธ๋๋ณด๋ค ์๋ค.
2.2 ์์ ํธ๋ฆฌ Complete tree
- ์์ ํธ๋ฆฌ๋ ๋น ์ง ๋ ธ๋ ์์ด ๋ ธ๋๊ฐ ์์ ํ ์ฑ์์ง ํธ๋ฆฌ๋ค.
- ๋ฐ๋ผ์ ํธ๋ฆฌ์ ๊ฐ ์ธต(๋ ๋ฒจ)์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์์ ๋ ๋ชจ๋ ์๋ฆฌ๋ง๋ค ๋ ธ๋๊ฐ ์๋ค.
- ํ์ง๋ง ๋ฐ๋ฅ ์ค์๋ ๋น ์๋ฆฌ๊ฐ ์์ ์ ์๋ค.
- ๋จ ๋น ์๋ฆฌ์ ์ค๋ฅธ์ชฝ์ผ๋ก๋ ์ด๋ค ๋ ธ๋๋ ์์ด์ผ ํ๋ค.
3. ํ ์์ฑ
- ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ํน์ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ๋์ง๋ง ์ด๋ฌํ ์ ๋ ฌ์ ํ์์ ๊ฐ์ ๊ฒ์ํ๋ ๋ฐ ์ ํ ๋์์ด ๋์ง ์๋๋ค.
- ํ์๋ ์์์ด ์กฐ์๋ณด๋ค ํด ์ ์๋ค๋ ๋ถ๋ช ํ ์์๊ฐ ์์ง๋ง ๊ฐ์ ๊ฒ์ํ๊ธฐ์๋ ๋ถ์กฑํ๋ค.
- ๋ฐ๋ผ์ ํ์ ์ด์ง ํ์ ํธ๋ฆฌ์ ๋นํด ์ฝํ ์ ๋ ฌ(weakly ordered)์ด๋ผ๊ณ ๋งํ๋ค.
- ํ์์๋ ๋ฃจํธ ๋ ธ๋๊ฐ ํญ์ ์ต๋๊ฐ์ด๋ค.
- ํ์ ์ฃผ์ ์ฐ์ฐ์ ์ฝ์ ๊ณผ ์ญ์ ๋ค.
- ํ์์ ๊ฒ์ํ๋ ค๋ฉด ๊ฐ ๋ ธ๋๋ฅผ ๊ฒ์ํด์ผ ํ๋ฏ๋ก ํ์ผ๋ก๋ ๋๊ฐ ๊ฒ์ ์ฐ์ฐ์ ๊ตฌํํ์ง ์๋๋ค.
- ํ์๋ ๋ง์ง๋ง ๋ ธ๋(last node)๊ฐ ์๋ค. ์ด๋ ๋ฐ๋ฅ ๋ ๋ฒจ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์์นํ ๋ ธ๋๋ค.
4. ํ ์ฝ์
- ํ์ ์ ๊ฐ์ ์ฝ์
ํ๋ ค๋ฉด ๋ค์ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ค.
- ์ ๊ฐ์ ํฌํจํ๋ ๋ ธ๋๋ฅผ ์์ฑํ๊ณ ๋ฐ๋ฅ ๋ ๋ฒจ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ ธ๋ ์์ ์ฝ์ ํ๋ค. ์ฆ, ์ด ๊ฐ์ด ํ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ ๋๋ค.
- ์๋ก ์ฝ์ ํ ๋ ธ๋์ ๊ทธ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋น๊ตํ๋ค.
- ์ ๋ ธ๋๊ฐ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํฌ๋ฉด ์ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ์ค์ํ๋ค.
- ์ ๋ ธ๋๋ณด๋ค ํฐ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๋ง๋ ๋๊น์ง 3๋ฒ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ ๋ ธ๋๋ฅผ ํ ์๋ก ์ฌ๋ฆฐ๋ค.
- ์ ๋ ธ๋๋ฅผ ํ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋ ธ๋๋ฅผ ์๋ก ํธ๋ฆฌํด๋ง(trickling)ํ๋ค๊ณ ํํํ๋ค.
- ํ ์ฝ์ ์ ํจ์จ์ฑ์ O(logN)์ด๋ค.
5. ๋ง์ง๋ง ๋ ธ๋ ํ์
- ์ฝ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋นํ ๊ฐ๋จํด ๋ณด์ธ๋ค. ๊ทธ๋ฌ๋ ์์ ๋ฌธ์ ๊ฐ ์๋ค. ๋ง์ง๋ง ๋ ธ๋ ์๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์์ผ ํ ๊น?
- ์ด ๋ฌธ์ ๋ฅผ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ผ๊ณ ๋ถ๋ฅด์. ์ฐ์ ์ญ์ ์ฐ์ฐ์ ์์๋ณด๊ณ , ๋์ค์ ๋ค๋ฃฌ๋ค.
6. ํ ์ญ์
- ํ์์ ๊ฐ์ ์ญ์ ํ๋ ค๋ฉด ๋ฃจํธ ๋ ธ๋๋ง ์ญ์ ํ ์ ์๋ค๋ ์ ์ ๋จผ์ ์์์ผ ํ๋ค.
- ์ด๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ํญ๋ชฉ๋ง ์ ๊ทผํ๊ณ ์ญ์ ํ๋ ์ฐ์ ์์ ํ์ ๋์ ๋ฐฉ์๊ณผ ์ผ์นํ๋ค.
- ํ์ ๋ฃจํธ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๋ฃจํธ ๋ ธ๋ ์๋ฆฌ๋ก ๋ฎ์ด์ด๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ ๋ฃจํธ ๋ ธ๋๋ ์ญ์ ๋๋ค.
- ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ ํ ์๋ฆฌ๊น์ง ํธ๋ฆฌํด๋งํ๋ค.
- ์ด๋ป๊ฒ ๋ฃจํธ ๋
ธ๋๋ฅผ ์ ์ ํ ์๋ฆฌ๊น์ง ํธ๋ฆฌํด๋งํ ์ ์์๊น? ํธ๋ฆฌํด๋งํ๋ ๋
ธ๋๋ฅผ ํธ๋ฆฌํด ๋
ธ๋๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๋ ์์์ ํ์ธํด ์ด๋ ์ชฝ์ด ๋ ํฐ์ง ํ์ธํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋๊ฐ ๋ ์์ ๋ ธ๋ ์ค ํฐ ๋ ธ๋๋ณด๋ค ์์ผ๋ฉด ํฐ ๋ ธ๋์ ํธ๋ฆฌํด ๋ ธ๋๋ฅผ ์ค์ํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๊ทธ ๋ ธ๋๋ณด๋ค ํฐ ์์์ด ์์ ๋๊น์ง 1, 2๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค.
- ํธ๋ฆฌํด ๋ ธ๋์ ๋ ์์ ์ค ํฐ ๋ ธ๋๋ฅผ ์ค์ํ๋ ์ด์ ๋ ์์ ๋ ธ๋์ ์ค์ํ๋ฉด ํ ์กฐ๊ฑด์ด ๋ฐ๋ก ๊นจ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ฆ, โ๋ ์์ ์ค ํฐ ๋ ธ๋โ๊ฐ โ๋ ์์ ์ค ์์ ๋ ธ๋โ์ ์์์ด ๋๋ค.
- ํ์์ ์ญ์ ํ๋ ค๋ฉด ๋ฃจํธ๋ถํฐ ์์ํด log(N)๊ฐ ๋ ๋ฒจ์ ๊ฑฐ์ณ ๋ ธ๋๋ฅผ ํธ๋ฆฌํด๋งํด์ผ ํ๋ฏ๋ก ์ฝ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก O(logN)์ด๋ค.
7. ํ ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด
์ ๋ ฌ๋ ๋ฐฐ์ด ํ
์ฝ์ | O(N) | O(logN) |
์ญ์ | O(1) | O(logN) |
- ๋ค์ ๋น๊ตํด ๋ณด์.
์ ๋ ฌ๋ ๋ฐฐ์ด ํ
์ฝ์ | ๋๋ฆผ | ๋งค์ฐ ๋น ๋ฆ |
์ญ์ | ๋ฌด์งํ๊ฒ ๋น ๋ฆ | ๋งค์ฐ ๋น ๋ฆ |
- ๋๋ก ๋ฌด์งํ๊ฒ ๋น ๋ฅด์ง๋ง ๋๋ฆด ์๋ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค ์ผ๊ด๋๊ฒ ๋งค์ฐ ๋น ๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ๋ซ๋ค.
- ๋ณดํต ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฝ์ ๊ณผ ์ญ์ ๋ฅผ ๊ฑฐ์ ๋น์ทํ ๋น์จ๋ก ์ํํ๋ค.
8. ๋ค์ ์ดํด๋ณด๋ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์
- ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ ์ ์ ์ฝ์ ๊ณผ ์ญ์ ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ ๊ผญ ํ์ํ์ง๋ถํฐ ์์๋ณด์.
- ์ ๊ฐ์ ํ์ ๋ค๋ฅธ ์์น์ ์ฝ์ ํ๋ฉด ์ ๋ ๊น?
- ์ญ์ ํ ๋ ๋ฃจํธ ๋ ธ๋๋ฅผ ๋ง์ง๋ง ๋ ธ๋ ๋์ ๋ค๋ฅธ ๋ ธ๋๋ก ๋์ฒดํ ์๋ ์์๊น?
- ๋ค๋ฅธ ๋
ธ๋์ ๋ฐ๊พธ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด ๋ณด์.
- ํ์ด ๋ถ์์ ํด์ง๋ค๋ ์ฌ์ค์ ๊ณง ๊นจ๋ซ๊ฒ ๋๋ค.
- ์ ํ์์๋ ์์ ์ฑ(completeness)์ด ๊ทธํ ๋ก ์ค์ํ ๊น?
- ์ด์ ๋ ๊ท ํ ์กํ ํ์ผ๋ก ์ ์งํ๊ณ ์ถ์ด์๋ค.
- ๊ท ํ ์กํ ํ์ ์ผ๊ด๋๊ฒ O(logN)์์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
- ๊ทธ๋ฌ๋ ๋ถ๊ท ํ์ด ์ฌํ ํธ๋ฆฌ๋ ์ต์ ์ ๊ฒฝ์ฐ O(N) ๋จ๊ณ๊ฐ ํ์ํ๋ค.
9. ๋ฐฐ์ด๋ก ํ ๊ตฌํํ๊ธฐ
- ๋ง์ง๋ง ๋ ธ๋ ์ฐพ๊ธฐ๋ ํ ์ฐ์ฐ์ ํต์ฌ์ด๊ณ ๋ํ ํจ์จ์ ์ผ๋ก ์ฐพ์์ผ ํ๋ฏ๋ก ์ฃผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํด ํ์ ๊ตฌํํ๋ค.
- ์ฆ, ํ ์์ฒด๊ฐ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ์ถ์ ๋ฐ์ดํฐ ํ์ ์ผ ์ ์๋ค.
- ํ์ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ ์ด์ ๋ ๋ง์ง๋ง ๋ ธ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ค. ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น?
- ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํ์ ๊ตฌํํ๋ฉด ๋ง์ง๋ง ๋ ธ๋๋ ํญ์ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ค.

- ์์ฃผ ๊ฐ๋จํ๊ฒ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ฐพ์ ์ ์๋ค.
9.1 ๋ฐฐ์ด ๊ธฐ๋ฐ ํ ์ํ
- ์์ ๋ดค๋ฏ์ด ํ ์ฝ์ ๊ณผ ์ญ์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ๋ฅํ๋ ค๋ฉด ํ์ ํธ๋ฆฌํด๋งํ ์ ์์ด์ผ ํ๋ค.
- ํ์ง๋ง ํ์ด ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ธ๋ฐ, ์ด๋ค ๋ ธ๋๊ฐ ์ด๋ค ๋ ธ๋์ ์ฐ๊ฒฐ๋๋์ง ์ด๋ป๊ฒ ์ ์ ์์๊น?
- ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ ๋
ธ๋์ ์ธ๋ฑ์ค๋ฅผ ํ ๋นํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ ํน์ฑ์ ํญ์ ๋ง์กฑํ๋ค.
- ์ด๋ค ๋ ธ๋์ ์ผ์ชฝ ์์์ index * 2 + 1 ์ ์์นํ๋ค.
- ์ด๋ค ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์์ index * 2 + 2 ์ ์์นํ๋ค.
9.2 ๋์ ๊ตฌํ
- ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์จ์ ํ์ ๊ตฌํํ์ผ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก๋ ๊ตฌํํ ์ ์๋ค.
- ์ฌ์ค ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด 15์ฅ์ ๋์๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋น๋กฏํด ์ด๋ค ์ข ๋ฅ์ ์ด์ง ํธ๋ฆฌ๋ ๊ตฌํํ ์ ์๋ค.
- ํ์ง๋ง ํ์ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ฝ๊ฒ ์ฐพ์์ค๋ค๋ ์ ์์ ๋ฐฐ์ด๋ก ๊ตฌํํ๋ฉด ์ ๋ฆฌํ ์ฒซ ์ด์ง ํธ๋ฆฌ ์ฌ๋ก๋ค.
10. ์ฐ์ ์์ ํ๋ก ์ฐ์ด๋ ํ
- ์ฐ์ ์์ ํ๋ก ๋์๊ฐ ๋ณด์.
- ์ฐ์ ์์ ํ์ ์ฃผ์ ๋ฉ์๋๋ ํ์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋ ํญ๋ชฉ์ ๋ฐ๋ก ์ ๊ทผํ๋ ๊ฒ์ด๋ค.
- ๊ทธ๋์ ์ฐ์ ์์ ํ ๊ตฌํ์๋ ํ์ด ๋ฑ ์ด์ธ๋ฆฐ๋ค.
- ํ์์๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ํญ๋ชฉ์ด ํญ์ ๋ฃจํธ ๋ ธ๋์ ์์ผ๋ ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ค.
- ๊ฒฐ๊ตญ ํ์ ์ฝํ ์ ๋ ฌ์ด ๊ต์ฅํ ์ฅ์ ์ผ๋ก ์์ฉํ๋ค.
- ์๋ฒฝํ ์ ๋ ฌํ ํ์๊ฐ ์์ผ๋ ์ ๊ฐ์ ํญ์ O(logN)์๊ฐ์ ์ฝ์ ํ ์ ์๋ค.
- ๋์์ ํ์ ์ธ์ ๋ ํ์ํ ํญ๋ชฉ์, ์ฆ ํ์ ์ต๋๊ฐ์ ํญ์ ์ ๊ทผํ ์ ์์ ๋งํผ ์ ๋ ฌ๋์ด ์๋ค.
- ๋ค์ ์ฅ๋ถํฐ ๋์ด๋ ๊ธ์์น ์์ โฆ
'๐๏ธ ์ฑ & ๊ฐ์ ์ ๋ฆฌ > ๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
18์ฅ ๊ทธ๋ํ๋ก ๋ญ๋ ์ง ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.03.08 |
---|---|
17์ฅ ํธ๋ผ์ด(trie)ํด ๋ณด๋ ๊ฒ๋ ๋์์ง ์๋ค (0) | 2023.03.06 |
15์ฅ ์ด์ง ํ์ ํธ๋ฆฌ๋ก ์๋ ํฅ์ (0) | 2022.12.26 |
14์ฅ ๋ ธ๋ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ (1) | 2022.12.09 |
13์ฅ ์๋๋ฅผ ๋์ด๋ ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ (0) | 2022.12.08 |