1์ฅ ์๋ฃ ๊ตฌ์กฐ
์ปดํจํฐ ์์์ ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋๋ฐ, ๋ฐ์ดํฐ์ ์์๋ ์์น ๊ด๊ณ ๋ฑ์ ์ ํ๋ ๊ฒ์ด โ์๋ฃ ๊ตฌ์กฐโ ์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ ๋ชฉ์ ์ ๋ง๊ฒ ๊ตฌ์กฐํํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ด์ฉ ํจ์จ์ ๋์ด๊ธฐ ์ํ ๊ฒ์ผ๋ก, 7๊ฐ์ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ ๋ฆฌํ๋ค.
List
๋ฆฌ์คํธ(list)๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ง์ ์ผ๋ก ๋์ดํ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ์ดํฐ์ ์ถ๊ฐ๋ ์ญ์ ๋ ์ฝ์ง๋ง, ์ํ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๋ฉด ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฐ๋ค.
๋ฆฌ์คํธ์ ๊ฐ๋ ๋์ด๋ค. ๋ค ๊ฐ์ ๋ฌธ์์ด โBlueโ, โGreenโ, โYellowโ, โRedโ ๊ฐ ๋ฐ์ดํฐ๋ก ์ ์ฅ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๋ฐ์ดํฐ์๋ ํฌ์ธํฐ(pointer)๊ฐ ์์ด ๋ค์ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ฆฌ์คํธ์์๋ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐ์๋ ์์น์ ์ ์ฅ๋์ง ์์๋ ๋๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๋จ์ด์ง ์์ญ์ ํฉ์ด์ ธ์ ์ ์ฅ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ค๋ฉด ํฌ์ธํฐ๋ฅผ ์ฒ์๋ถํฐ ์์๋๋ก ๋ฐ๋ผ๊ฐ์ผ๋ง ํ๋ค.
- ๋ฐ์ดํฐ ์ถ๊ฐ๋ ์ถ๊ฐํ ์์น์ ์๋ค ํฌ์ธํฐ๋ฅผ ๋ณ๊ฒฝ๋ง ํ๋ฉด ๋๋ฏ๋ก ๊ฐ๋จํ๋ค. (์ญ์ ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํฌ์ธํฐ์ ๋ฐฉํฅ์ ๋ฐ๊พธ๋ฉด ๋๋ค)
์กฐํ | ์ถ๊ฐ | ์ญ์ |
---|---|---|
O(n) | O(1) | O(1) |
Array
๋ฐฐ์ด(array) ์ ๋ฐ์ดํฐ๋ฅผ 1์ด๋ก ๋์ดํ ๊ฒ์ด๋ค. ๋ฆฌ์คํธ์๋ ๋์กฐ์ ์ผ๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ๋ ์ฝ์ง๋ง ์ถ๊ฐ๋ ์ญ์ ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
์กฐํ | ์ถ๊ฐ | ์ญ์ |
---|---|---|
O(1) | O(n) | O(n) |
Stack
์คํ(Stack)์ ๋ฐ์ดํฐ๋ฅผ 1์ด๋ก ๋์ดํ์ง๋ง, ์๋ฅ๋ฅผ ์์ ๋์ ๊ฒฝ์ฐ์ฒ๋ผ ์๋กญ๊ฒ ์ถ๊ฐํ ๋ฐ์ดํฐ์๋ง ์ ๊ทผํ ์ ์๋ค. ์๋ก์ด ์๋ฅ๊ฐ ๋์ฐฉํ๋ฉด ํ์ฌ ์๋ฅ ๋๋ฏธ์ ๊ฐ์ฅ ์์ ์ฌ๋ ค๋๊ณ ์๋ฅ๋ฅผ ๊บผ๋ผ ๋๋ ๊ฐ์ฅ ์์์๋ถํฐ ๊บผ๋ด๋ ๊ฒ๊ณผ ๊ฐ๋ค.
- ๋ฐ์ดํฐ ์ถ๊ฐ : push
- ๋ฐ์ดํฐ ์ถ์ถ : pop
์คํ์ฒ๋ผ ๋์ค์ ๋ฃ์ ๊ฒ์ ๋จผ์ ๊บผ๋ด๋ ํ์ ์ ์ถ ๊ตฌ์กฐ๋ฅผ LIFO ๋ผ๊ณ ํ๋ค. ๋ฆฌ์คํธ๋ ๋ฐฐ์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์คํ๋ ๋ฐ์ดํฐ๋ฅผ 1์ด๋ก ๋์ดํ ๊ฒ์ด์ง๋ง ๋ฐ์ดํฐ ์ถ๊ฐ๋ ์ญ์ ๊ฐ ๋จ๋ฐฉํฅ์ผ๋ก๋ง ๊ฐ๋ฅํ๋ค๋ ์ ์ฝ์ด ์๋ค. ๋ง์ฝ ์ค๊ฐ์ ์๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค๋ฉด ํด๋น ๋ฐ์ดํฐ๊ฐ ์ ์ผ ์์ ์ฌ ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ pop ํด์ผ ํ๋ค.
๋จ๋ฐฉํฅ์ผ๋ก๋ง ์กฐ์ํ ์ ์๋ค๋ ์ ์ฝ์ด ์์ด ๋ถํธํ๋ค๊ณ ์๊ฐํ ์๋ ์์ง๋ง, ํญ์ ์ต์ ๋ฐ์ดํฐ๋ง ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๊ตฌ์กฐ์์๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
Queue
ํ(Queue)๋ ๋ฐ์ดํฐ๋ฅผ 1์ด๋ก ๋์ดํ ๊ตฌ์กฐ๋ก, ์คํ๊ณผ ๋น์ทํ์ง๋ง ํ๋ ์ถ๊ฐํ๋ ์ธก๊ณผ ์ญ์ ํ๋ ์ธก์ด ๋ฐ๋๋ค. โ๋๊ธฐ ํ๋ ฌโ ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋๋ฐ, ๊ทธ ๋ช ์นญ์ฒ๋ผ ์ค์ ์ ์๋ ํ๋ ฌ์ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. ํ๋ ฌ์์๋ ์๋กญ๊ฒ ์จ ์ฌ๋์ด ๊ฐ์ฅ ๋ค์ ์๋ฉฐ, ๊ฐ์ฅ ์์ ์๋ ์ฌ๋์ด ์์๋๋ก ์ฒ๋ฆฌ๋๋ค.
- ๋ฐ์ดํฐ ์ถ๊ฐ : enqueue
- ๋ฐ์ดํฐ ์ถ์ถ : dequeue
ํ๋ ์ ์ ์ ์ถ ๊ตฌ์กฐ (FIFO) ์ด๋ค. ์คํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ ์๋ ์์น๊ฐ ์ ํด์ ธ ์๋ค. ๋ค๋ง ํ์์๋ ์ถ๊ฐํ๋ ์ชฝ๊ณผ ์ถ์ถํ๋ ์ชฝ์ด ๋ฐ๋์ด๋ค. ์ค๋๋ ๋ฐ์ดํฐ๋ถํฐ ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒ์ ๋งค์ฐ ์์ฐ์ค๋ฌ์ด ๋ฐฉ์์ด์ด์ ํ๋ ํญ๋๊ฒ ํ์ฉ๋๊ณ ์๋ค. ์๋ฅผ ๋ค์ด, ๋๋น ์ฐ์ ํ์์์๋ ํ์ ํ๋ณด ์ค์์ ํญ์ ๊ฐ์ฅ ์ค๋๋ ๊ฒ์ ์ ํํ๋ฏ๋ก ํ๋ณด ๊ด๋ฆฌ์ ํ๋ฅผ ํ์ฉํ๋ค.
Hash Table
ํด์ ํ ์ด๋ธ(Hash Table)์ โํด์ ํจ์โ์ ํจ๊ป ๋ฐ์ดํฐ ๊ฒ์์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์ด๋ค.
ํด์ ํ ์ด๋ธ์ ํค(key)์ ๊ฐ(value)์ด ํ ์์ ์ด๋ฃจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ง์ฝ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํ๋ค๋ฉด ์ ํ ํ์์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก ๋ฐ์ดํฐ์์ ๋น๋กํด์ ์๊ฐ์ด ๋์ด๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๊ฒ์ด ํด์ ํ ์ด๋ธ์ด๋ค.
- โํด์ ํจ์โ ๋ฅผ ์ด์ฉํด์ Joe์ ํค(์ฆ ๋ฌธ์์ด โJoeโ)์ ํด๋นํ๋ ํด์๊ฐ์ ๊ณ์ฐํ๋ค. ์ฌ๊ธฐ์๋ 4928 ์ด๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
- ๊ตฌํ ํด์๊ฐ์ ๋ฐฐ์ด์ ์์ ๊ฐฏ์์ธ 5๋ก ๋๋์ด mod ์ฐ์ฐํ๋ค. (5๋ก ๋๋ ๋๋จธ์ง๋ 3์ด๋ค)
- ๊ตฌํ ์์ ๊ฐ์ ๋ฐฐ์ด์ 3๋ฒ ์์์ Joe ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- ๋ง์ฝ Joe ๋ฅผ ํค๋ก ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ์ ํ๋ค๋ฉด key ์ ํด์๊ฐ์ ๊ณ์ฐํ๋ฉด ๋ฐ๋ก ๊ทธ ์์น๋ฅผ ์ฐพ์ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
- ๊ทธ๋ฐ๋ฐ ์ถ๊ฐ๋ก ๊ฐ์ ํด์๊ฐ์ ๊ฐ๋ key ๊ฐ ์ถ๊ฐ๋๋ค๋ฉด(์ด๋ฅผ โ์ถฉ๋โ์ด๋ผ๊ณ ํ๋ค.), ๋ฐฐ์ด์ 3๋ฒ ์์์์ ๋ฆฌ์คํธ ๊ตฌ์กฐ๋ก ์ฐ๊ฒฐํด์ ์ ์ฅํ๋ค.
- ๋ง์ฝ 3๋ฒ ์์์ ์ ์ฅ๋ Ally ๋ผ๋ key ๋ฅผ ์ฐพ๋๋ค๋ฉด, ์ ์ผ ์ฒ์ ์ ์ฅ๋ Joe ๋ฅผ ์ ๋๋ก ํ๋ ๋ฆฌ์คํธ๋ฅผ ๋์์ผ๋ก ์ ํ ํ์์ ์ค์ํ๋ค.
์ด์ฒ๋ผ ํด์ ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ๋๋ฌด ์์ผ๋ฉด ์ถฉ๋์ด ๋ง์์ง๊ณ ์ ํ ํ์์ ๋น๋๊ฐ ๋์์ง๋ค. ๋ฐ๋๋ก ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๋ฉด ๋ฐ์ดํฐ๊ฐ ์๋ ์์๊ฐ ๋ง์์ ธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ ์ ํ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
Heap
ํ(Heap) ์ ๊ทธ๋ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ ์ค ํ๋๋ก, โ์ฐ์ ์์ ํโ๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ๋๋ค. ์ฐ์ ์์ ํ๋ ์๋ฃ ๊ตฌ์กฐ์ ํ๋๋ก์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ ์ ์๋ค. ๋ฐ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ๋๋ ์ต์๊ฐ๋ถํฐ ์์๋๋ก ์ ํํ๋ค. ์ถ๊ฐ๋ ์์ ๋กญ๊ฒ ํ๊ณ ์ถ์ถํ ๋๋ ์์ ๊ฐ๋ถํฐ ๊บผ๋ด๋ ๊ฒ์ด ์ฐ์ ์์ ํ์ด๋ค.
ํ์ ํํํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์์๋ ๊ฐ ์ ์ ์ โ๋ ธ๋(node)โ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค. ๋ ธ๋๋ค์ ์ต๋ ๋ ๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ค. ๋ ธ๋๋ ์์์๋ถํฐ ์ฑ์์ง๋ฉฐ, ๊ฐ์ ์ธต์์๋ ์ผ์ชฝ๋ถํฐ ์ฑ์์ง๋ค. ๋ํ ํ์์๋ ๋ฐ์ดํฐ ์ ์ฅ ์์น๋ฅผ ์ ํ๊ธฐ ์ํด ์์ ๋ ธ๋์ ์ซ์๋ ๋ฐ๋์ ๋ถ๋ชจ ๋ ธ๋์ ์ซ์๋ณด๋ค ์ปค์ผ ํ๋ค๋ ๊ท์น์ด ์๋ค. ๋ฐ๋ผ์ ๊ฐ์ฅ ์(root)์ ๊ฐ์ฅ ์์ ์ซ์๊ฐ ๋ค์ด์๋ค. ์ด ๊ท์น์ ์งํค๊ธฐ ์ํด ๊ฐ์ฅ ์๋์ธต์ ์๋ ์ผ์ชฝ ๋ ธ๋๋ถํฐ ๊ฐ์ ์ฑ์ฐ๊ณ , ๊ฐ์ฅ ์๋ ์ธต์ด ๋ชจ๋ ์ฑ์์ง๋ฉด ์๋ก์ด ์ธต์ ๋ง๋ค์ด์ ๋ ๊ฐ์ฅ ์ผ์ชฝ๋ถํฐ ์ฑ์๋๊ฐ๋ค.
- ํ์ ์ซ์ 5๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด์.
- ์ถ๊ฐ๋๋ ์๋ ๊ฐ์ฅ ์๋ ์ธต์ ์ผ์ชฝ๋ถํฐ ์ ์ฅ๋๋ค. ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ ์๋์ธต์ ํ ์๋ฆฌ๊ฐ ๋จ์์์ผ๋ฏ๋ก ๊ฑฐ๊ธฐ์ ์ ์ฅ๋๋ค.
- ๋ถ๋ชจ์ ์ซ์๊ฐ ํด ๋๋ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ๋ถ๋ชจ์ ์์์ ๊ตํํ๋ค. (6๊ณผ 5๋ฅผ ๊ตํ)
- ๊ทธ ๋ค์์ผ๋ก๋ ๋ถ๋ชจ 1 < ์์ 5 ์ด๋ฏ๋ก ๋ถ๋ชจ์ ์ซ์๊ฐ ์์์ ๊ตํ์ด ๋ฐ์ํ์ง ์๋๋ค. ์ด๊ฒ์ผ๋ก ํ์ ์ซ์ ์ถ๊ฐ๊ฐ ์๋ฃ๋๋ค.
- ํ์์ ์ซ์๋ฅผ ๊บผ๋ผ ๋๋ ๊ฐ์ฅ ์์ ์๋ ์ซ์๊ฐ ์ถ์ถ๋๋ค. root์ ์ซ์๊ฐ ์ต์๊ฐ์ ์ง๋๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ฐ์ฅ ์์ ์ซ์๊ฐ ์์ด์ก์ผ๋ฏ๋ก ํ์ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ ๋ฆฌํด์ผ ํ๋ค.
- ์ด๋ด ๋๋ ๊ฐ์ฅ ํ๋ฏธ์ ์๋ 6์ด ๊ฐ์ฅ ์๋ก ์ด๋ํ๋ค.
- ๋ถ๋ชจ 6 > ์์(์ฐ) 5 > ์์(์ข) 3 ์ด๋ฏ๋ก ๊ฐ์ฅ ๋ฎ์ ์ผ์ชฝ ์์๊ณผ ๋ถ๋ชจ๋ฅผ ๊ตํํ๋ค.
- ์ด๊ฒ์ ๊ตํ์ด ๋ฐ์ํ์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
ํ์ ํญ์ root์ ์ต์๊ฐ์ด ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ ์์ ์๊ด์์ด O(1) ์๊ฐ์ ์ต์๊ฐ์ ์ถ์ถํ ์ ์๋ค. ๋ํ ์ถ์ถ ํ ํ์ ์ฌ๊ตฌ์ถํ ๋์๋ ๊ฐ์ฅ ํ๋ฏธ์ ์๋ ๋ฐ์ดํฐ๋ฅผ root๋ก ๊ฐ์ ธ์จ ํ ์์๊ณผ ๋น๊ตํด ๊ฐ๋ฉฐ ์๋ ๋ฐฉํฅ์ผ๋ก ์งํํ๋ค. ๋๋ฌธ์ ๊ณ์ฐ ์๊ฐ์ ํธ๋ฆฌ์ ๋์ด์ ๋น๋กํ๋ค. ๋ฐ์ดํฐ ์๋ฅผ n์ด๋ผ๊ณ ํ๋ฉด ํ ํ์ฑ ์กฐ๊ฑด์ ๋ฐ๋ผ ํธ๋ฆฌ์ ๋์ด๋ log2n ์ด๋ฏ๋ก ์ฌ๊ตฌ์ถ์ ๊ณ์ฐ์๊ฐ์ O(log n)์ด ๋๋ค. ๋ฐ์ดํฐ ์ถ๊ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
์ถ์ถ | ์ถ๊ฐ |
---|---|
O(1) | O(log n) |
Binary search tree
์ด์ง ํ์ ํธ๋ฆฌ(Binary search tree)๋ ๊ทธ๋ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ ๊ฐ์ง ์ฑ์ง์ ์ง๋๋ค. ์ฒซ ๋ฒ์งธ ์ฑ์ง์, ๋ชจ๋ ๋ ธ๋๋ ์ผ์ชฝ ๊ฐ์ง์ ํฌํจ๋๋ ์ด๋ค ์ซ์๋ณด๋ค๋ ํฐ ์ซ์๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ธ๋ 9๋ ๊ทธ ์ผ์ชฝ์ ์๋ ๊ฐ์ง์ ๋ชจ๋ ์ซ์(3, 8)๋ณด๋ค ํฌ๋ค. ๋ ๋ฒ์งธ ์ฑ์ง์, ๋ชจ๋ ๋ ธ๋๋ ๊ทธ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ๊ฐ์ง์ ํฌํจ๋๋ ์ด๋ค ์ซ์๋ณด๋ค ์์ ์ซ์๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, ๋ ธ๋ 15๋ ๊ทธ ์ค๋ฅธ์ชฝ ๊ฐ์ง์ ์๋ ์ด๋ค ์(23, 17, 28)๋ณด๋ค ์๋ค.
์ด ๋ ๊ฐ์ ์ฑ์ง๋ก๋ถํฐ ๋ค์ ์กฐ๊ฑด์ด ์ฑ๋ฆฝ๋๋ค. ๋จผ์ , ์ด์ง ํ์ ํธ๋ฆฌ์ ์ต์ ๋ ธ๋๋ ์ต์๋จ์ ์๋ ๋ ธ๋๋ก๋ถํฐ ์ผ์ชฝ ๊ฐ์ง๋ง ๊ณ์ ๋ฐ๋ผ๊ฐ๋ฉด ๋์ค๋ ๊ฐ์ฅ ๋์ ์์นํ ๋ ธ๋๊ฐ ๋๋ค. ๋ฐ๋๋ก ์ต๋ ๋ ธ๋๋ ์ต์๋จ์ ๋ ธ๋๋ก๋ถํฐ ์ค๋ฅธ์ชฝ ๊ฐ์ง๋ง ๊ณ์ ๋ฐ๋ผ๊ฐ๋ฉด ๋์ค๋ ๊ฐ์ฅ ๋์ ์์นํ ๋ ธ๋๊ฐ ๋๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ์ 1์ ์ถ๊ฐํด๋ณด์.
- ์ต์๋จ ๋ ธ๋๋ถํฐ ํ์ํ์. ์ถ๊ฐํ๋ ค๊ณ ํ๋ 1์ ํ์ฌ ๋ ธ๋ ๊ฐ๊ณผ ๋น๊ตํด์ ์์ผ๋ฉด ์ผ์ชฝ์ผ๋ก, ํฌ๋ฉด ์ค๋ฅธ์ชฝ์ผ๋ก ์งํํ๋ค. (1 < 15 ์ด๋ฏ๋ก ์ผ์ชฝ์ผ๋ก ์งํ)
- 1 < 9 ์ด๋ฏ๋ก ์ผ์ชฝ์ผ๋ก ์งํํ๋ค.
- 1 < 3 ์ด๋ฏ๋ก ์ผ์ชฝ์ผ๋ก ์งํํด์ผ ํ์ง๋ง ๋ ธ๋๊ฐ ์์ผ๋ฏ๋ก ์๋ก์ด ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ค.
- ๋ค์์ผ๋ก๋ ๋ ธ๋๋ฅผ ์ญ์ ํด๋ณด์. ์๋ฅผ ๋ค์ด 28์ ์ญ์ ํด ๋ณด์.
- ์์ ๋ ธ๋๊ฐ ์๋ ๋ ธ๋๋ ๋์ ๋ ธ๋๋ฅผ ์ญ์ ๋ง ํ๋ฉด ์์ ์ด ๋๋๋ค.
- ๋ค์์ผ๋ก๋ 9๋ฅผ ์ญ์ ํด๋ณด์. ์์ ๋ ธ๋๊ฐ ๋ ๊ฐ์ธ ๊ฒฝ์ฐ๋ ๋จผ์ ๋์ ๋ ธ๋๋ฅผ ์ญ์ ํ๋ค.
- ์ญ์ ํ ๋ ธ๋์ ์ผ์ชฝ ๊ฐ์ง์์ ์ต๋ ๋ ธ๋๋ฅผ ์ฐพ์ ์ญ์ ํ ๋ ธ๋์ ์์น๋ก ์ด๋์ํจ๋ค. (9๋ ์ฌ๋ผ์ง๊ณ 8์ด ์ฌ๋ผ๊ฐ๋ค)
์ด์ง ํธ๋ฆฌ์ ํ์์ ํธ๋ฆฌ์ ๋์ด๋งํผ๋ง ๋น๊ตํ๋ฉด ๋๋ฏ๋ก ๋ ธ๋๊ฐ n๊ฐ ์๊ณ ํธ๋ฆฌ๊ฐ ๊ท ํ ์กํ ๊ฒฝ์ฐ๋ผ๋ฉด ์ต๋ log2n ํ์ ๋น๊ต๋ก ์ด๋ํ ์ ์๋ค. ๋จ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์ณ์ ์ง์ ์ ๊ฐ๊น์ด ๋ชจ์์ธ ๊ฒฝ์ฐ์๋ ํธ๋ฆฌ๊ฐ ๋์์ ธ์ O(n)์ด ๋ ์๋ ์๋ค.
๐ ์ฐธ๊ณ ์๋ฃ