2021. 8. 9. 08:00ใ์ฝ๋ฉ ํ ์คํธ ์ค๋น/์๋ฃ๊ตฌ์กฐ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค.
์ค๋์ ์๋ฃ๊ตฌ์กฐ์์ ํ์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์!
์ ๊ฐ ํผ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์!
๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค!
๐ ํ ( Queue )
ํ๋ ๋ํ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ธ ๊ฒ์ด๋ฏ๋ก, ๊ผญ ์์์ผ ํ๋ ๊ฒ์ด์์.
๐ Queue์ ๊ตฌ์กฐ
- ์ค์ ์๋ ํ์์ ์ ์ฌ
- ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ธ๋ค.
- ์์์ ์์ ๊ฐ์ฅ ๋จผ์ ์ค์ ์ ์ฌ๋์ด ์ ์ผ ๋จผ์ ์์์ ์ ๋ค์ด๊ฐ๋ ๊ฒ๊ณผ ๋์ผ
- FIFO(First-In, First-Out) ํน์ LILO (Last-In, Last-Out) ๋ฐฉ์์ผ๋ก ๋์ํ๋ฉฐ, Stack์ด๋ผ๋ ๊ตฌ์กฐ์๋ ์์๊ฐ ๋ฐ๋
๐ ์ฉ์ด ์ ๋ฆฌ
- Enqueue : Queue์ Data๋ฅผ ๋ฃ๋๋ค.
Queue์์ Data 28์ Enqueue ํ๋ฉด ์๋์ ๊ฐ์ด tail ๋ถ๋ถ์ ์ค์ ์๋ ๊ฒ์ฒ๋ผ ๋ค์ ์๊ธฐ๋ ๊ฒ์ด์์.
- Dequeue : Queue์์ Data๋ฅผ ๊บผ๋ธ๋ค.
๊ทธ๋ฆฌ๊ณ , Dequeue๋ฅผ ์คํํ๋ฉด ๋งจ ์์ ์์๋ ๊ฐ์ด ๋น ์ ธ๋๊ฐ๊ฒ ๋๋ ํ์์ด ๋ฐ๋ก Queue์ธ ๊ฒ์ด์์!
๐ Python Queue Library ํ์ฉํ์ฌ Queue ์๋ฃ ๊ตฌ์กฐ ์ฌ์ฉ
- Queue Library์๋ ๋ค์ํ Queue ๊ตฌ์กฐ๋ก Queue(), LifoQueue(), PriorityQueue() ์ ๊ณต
- ํ๋ก๊ทธ๋จ ์์ฑ ์ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ์ ์ ํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- Queue() : ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Queue ์๋ฃ ๊ตฌ์กฐ
- LifoQueue() : ๋์ค์ ์ ๋ ฅ๋ Data๊ฐ ๋จผ์ ์ถ๋ ฅ ๋๋ ๊ตฌ์กฐ (Stack ๋ฐฉ์์ ๊ตฌ์กฐ)
- PriorityQueue() : Data๋ง๋ค ์ฐ์ ์์๋ฅผ ๋ฃ์ด ์ฐ์ ์์๊ฐ ๋์ ์์ผ๋ก Data ์ถ๋ ฅ
- ์ด ์ธ์ ๋ค์ํ ์ ์ฑ ์ด ์ ์ฉ๋ Queue ์กด์ฌ
๐ Queue๊ฐ ๋ง์ด ์ฌ์ฉ ๋๋ ๊ณณ
๋ฉํฐ ํ์คํน์ ์ํ ํ๋ก์ธ์ค (์ปดํจํฐ์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ) ์ค์ผ์ฅด๋ง ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ์ด์์.
ํ์ ๊ฒฝ์ฐ ์ฅ, ๋จ์ (ํน๋ณํ ์ธ๊ธ๋๋ ์ฅ, ๋จ์ ์ด ์๋ค.) ๋ณด๋ค๋ ํ์ ํ์ฉ ์๋ก ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง ๋ฐฉ์์ ํจ๊ป ์ดํดํด ๋๋ ๊ฒ์ด ์ข๋ต๋๋ค!
์์ alleh ๊ด๊ณ ๋ฅผ ๋ณด๋ฉด ํ์ ๋ํด ์ข ๋ ์ดํด ํ๊ธฐ ํธํ์ค ๊ฒ์ด์์!
์ฃผ๋ํ๋์ ๊ธ์ด ๋ง์์ ๋์ จ๋์? ๊ตฌ๋ ๊ณผ ๊ณต๊ฐ! ๊ทธ๋ฆฌ๊ณ , ๋๊ธ์ ์ฃผ๋ํ๋์๊ฒ ๋ง์ ํ์ด ๋ฉ๋๋ค
'์ฝ๋ฉ ํ ์คํธ ์ค๋น > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] Tree ๊ตฌ์กฐ(2) (0) | 2021.08.29 |
---|---|
[์๋ฃ๊ตฌ์กฐ] 05. Hash Table (0) | 2021.08.27 |
[์๋ฃ๊ตฌ์กฐ] 04. Linked List (0) | 2021.08.15 |
[์๋ฃ๊ตฌ์กฐ] 03. Stack (0) | 2021.08.10 |
[์๋ฃ๊ตฌ์กฐ] 01. ๋ฐฐ์ด (0) | 2021.08.08 |