1. ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ ?
์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ๊ท์น ๋๋ ๋ชฉ์ ์ ๋ง๊ฒ ์ ์ฅํ๊ธฐ ์ํ ๊ตฌ์กฐ์ด๊ณ , ์๊ณ ๋ฆฌ์ฆ์ด๋ ์๋ฃ๊ตฌ์กฐ์ ์์ธ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ์ด๋ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฌ๋ฌ ๋์๋ค์ ๋ชจ์์ด๋ค.
2. Array [ ๋ฐฐ์ด ] ์ LinkedList [ ์ฐ๊ฒฐ๋ฆฌ์คํธ ]
Array ๋ ์์๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, ๊ณ ์ ๊ธธ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ฐ์ดํฐ์ ์์๋ฅผ ์๋ฏธํ๋ Index๊ฐ ์กด์ฌํ๋ฉฐ, Index๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ Random Access๋ฅผ ์ง์ํ๋ค. Index๋ฅผ ํตํด ๊ฐ์ ์์ธํ๋ฉด O(1)์ ์๊ฐ๋ณต์ก๋๊ฐ ์์๋๋ค.
ํ์ง๋ง, ์ค๊ฐ์ ๊ฐ์ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ๋ฉด O(N)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
์ด๋ฌํ ๊ณ ์ ๊ธธ์ด์ ๋๋ฆฐ ์ฝ์ , ์ญ์ ์ฐ์ฐ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ์๋ฃ๊ตฌ์กฐ๊ฐ LinkedList์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ ๊ฐ ๋ ธ๋๋ค์ ์๋ก ์ฐ๊ฒฐ ์์ผ ๋ง๋ ์ ํ ์๋ฃ๊ตฌ์กฐ๋ก, ๊ฐ๋ณ ๊ธธ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ค๊ฐ์ ๊ฐ์ ์ฝ์ ์ด๋ ์ญ์ ํ๋ ๊ณผ์ ์์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ๋ฐ๋ฉด, ๊ฒ์์ ์์ด์๋ ์ต์ ์ ๊ฒฝ์ฐ O(N) ์ด๋ผ๋ ๋จ์ ์ด ์๋ค.
3. Stack [ ์คํ ] ๊ณผ Queue [ ํ ]
์คํ์ FIFO์ ํน์ง์ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์คํ์ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ฐฐ์ด / ์ฐ๊ฒฐ๋ฆฌ์คํธ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ฃผ๋ฃ ๋ฐฐ์ด์ ํตํด ๊ตฌํํ๋ค. ์คํ์ด ์ค์ ๋ก ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์ '๋ค๋ก๊ฐ๊ธฐ' ๊ธฐ๋ฅ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์คํ ์์ญ์ ์ฌ์ฉ๋๋ค.
ํ๋ FILO์ ํน์ง์ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํ๋ ์ฃผ๋ก ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ํตํด ๊ตฌํํ๋ค. ํ๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ํ๋ฆฐํฐ ํ, CPU ์ค์ผ์ค๋ง์ Ready Queue๋ฑ์ ์ฌ์ฉ๋๋ค.
3. Priority Queue [ ์ฐ์ ์์ ํ ]
์ ์ ์ ์ถ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ํ์๋ ๋ค๋ฅด๊ฒ, ์ฐ์ ์์๊ฐ ๋์ ์์๊ฐ ์ฐ์ ์ ์ผ๋ก ๋น ์ ธ๋์ค๊ฒ ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ฐ์ ์์ ํ๋ ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ, Heap์ผ๋ก ๊ตฌํํ ์ ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์๋ ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ์ด ๋ชจ๋ O(LogN)์ด ๋ณด์ฅ๋ Heap ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๋ค.
'๐ CS [ComputerScience] > ๐ CS ๋ฉด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [19] [Java] (0) | 2024.03.29 |
---|---|
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [ 3์ 2์ฃผ์ฐจ ] (0) | 2024.03.16 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [17] [TCP/UDP] (0) | 2024.03.12 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [16] [์ด์์ฒด์ ] (0) | 2024.03.11 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [ 3์ 1์ฃผ์ฐจ ] [ 1 ] (0) | 2024.03.10 |