๋ฐ์ํ

1. ํ (Queue)
1.1 ํ (queue)๋?
- ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ์ ์๋ ๊ตฌ์กฐ
- ๋๊ธฐํ๋ ฌ์ ์๊ฐ, ๋จผ์ ๊ธฐ๋ค๋ฆฐ ์ฌ๋์ด ๋จผ์ ํํ์ ๋ฐ๋๋ค
- FIFO (FIrst In, First Out) ๋ฐฉ์ = LILO (Last In, Last Out) ๋ฐฉ์
1.2 ํ์ ๊ตฌ์กฐ

1.3 ํ๋ ์ด๋์ ๋ง์ด ์ฐ์ผ๊น?
- ํ๋ ์ฃผ๋ก ์ด์์ฒด์ ์์ ๋ฉํฐํ์คํน์ ๊ตฌํํ๊ธฐ ์ํด์ ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ์ํด ๋ง์ด ์ฐ์ธ๋ค
1.4 ํ์ ์ฉ์ด
- Enqueue (์ธํ) = ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ธฐ๋ฅ
- Dequeue (๋ํ) = ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ธฐ๋ฅ (ํ์์ ๋ฐ์ดํฐ๋ ์ญ์ ๋๋ค.)
1.5 ํ์ด์ฌ์์ Queue ๊ตฌํํ๊ธฐ
ํ์ด์ฌ์์ ์ธํ์ ๋ํ๋ put, get์ผ๋ก ๊ตฌํํ ์ ์๋ค.
import queue
#ํ ์์ฑ
q = queue.Queue()
#์ธํ
q.put('hi')
q.put(121)
#ํ ์ฌ์ด์ฆ ์ถ๋ ฅ
q.qsize()
# ๊ฒฐ๊ณผ๋ ; 2 // hi, 121 ๋ค์ด์์
#๋ํ
q.get() # 'hi' ์ถ๋ ฅ
q.get() # 121 ์ถ๋ ฅ
# FIFO ์ ์ฑ
์ ๋ฐ๋ฆ
2. ์คํ (stack)
2.1 ์คํ(stack) ์ด๋
- ๋ฐ์ดํฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ๊ตฌ์กฐ
- ํ์ชฝ ๊ธ์์๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ฑฐ๋ ๋นผ๋ ๊ตฌ์กฐ
- LIFO (Last In, First Out) ํ๋ ์ ๋ฐ๋์ ์ ์ฑ ์ ๋ฐ๋ฅธ๋ค.
2.2 ์คํ์ ๊ตฌ์กฐ

2.3 ์คํ์ ์ธ์ ์ฌ์ฉํ ๊น?
- ์ปดํจํฐ ๋ด๋ถ์ ํ๋ก์ธ์ค ๊ตฌ์กฐ์ ํจ์ ๋์ ๋ฐฉ์์์ ์ฌ์ฉ
2.4 ์คํ์ ํน์ง
- ์ฅ์
- ๊ตฌ์กฐ๊ฐ ๋จ์ํด์ ๊ตฌํ์ด ์ฝ๋ค.
- ๋ฐ์ดํฐ์ ์ ์ฅ, ์ฝ๋ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๋จ์
- ๋ฐ์ดํฐ์ ์ต๋ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์ ํด์ผํ๋ค.
- ์ต๋์น๋ฅผ ์ค์ ํด์ผํด์ ๋น์ด์๋ ๊ณต๊ฐ์ด ์์ผ๋ฉด ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ์๊ธด๋ค.
- ํ์ด์ฌ์ ์ฌ๊ทํจ์๋ฅผ ํตํ ์คํ์ ๊ตฌํ์ 1000๋ฒ๊น์ง๋ง ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
2.5 ์คํ์ ์ฉ์ด
- push() = ๋ฐ์ดํฐ๋ฅผ ์คํ์ ๋ฃ๋ ๊ฒ ( ํ์ด์ฌ์ list์์๋ append์ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ๋๋ค.)
- pop() = ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๊บผ๋ด๋ ํจ์. ( list ๊ตฌ์กฐ์์๋ pop์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.) ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋ ๋จ์ด๊ฐ ๋์ค๊ณ , pop(0)์ผ๋ก ๊ฐ์ฅ ์ฒ์ ์๋ ๋ฝ์ ์ ์๋ค. pop๋์ด์ง ๋ฐ์ดํฐ๋ ์คํ(๋ฆฌ์คํธ)์์ ์ญ์ ๋๋ค)
๋ฐ์ํ