์คํ(Stack)
- ์ ์
ํ์ถ์ ํน์ง์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค. (ํํ ๋ฐ์ค์๊ธฐ์ ๋น์ )
- ์ปดํจํฐ ๋ด๋ถ์์ ์ฌ๊ทํจ์์ ๊ตฌํ์ ์คํ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
Python์์ ์คํ์ ์ฌ์ฉํ ๋๋ ํน๋ณํ ๊ตฌํ ํ์์์ด, <list>.append()
ํจ์์ <list>.pop()
๋ง์ ์ฌ์ฉํ๋ฉด ๊ทธ๋๋ก ์คํ์ ๊ตฌํํ ์ ์๋ค.
Python - stack
stack = []
stack.append(3)
stack.append(4)
stack.pop()
ํ(Queue)
- ์ ์
์ ์ถ์ ํน์ง์ ๊ฐ์ก๋ค. (ํํ ์ค์๊ธฐ์ ๋น์ )
- ์ฝ์
๋๋ ๊ณณ์
front
์ ๊ฑฐ๋๋๊ณณ์ back
์ด๋ผ๊ณ ํ๋ค.
- BFS(๋๋น ์ฐ์ ํ์) ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
- deque์ append ํจ์๋ง ์ถ๊ฐํ๊ณ , popleft()๋ก๋ง ์ญ์ ํ๋ฉด ํ์ด๋ค.
๋ฑ(Deque)
- ์คํ๊ณผ ํ์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ๊ณ ์๋ค.
- ํ(Queue)๋
front
๋ก๋ง ์ฝ์
ํ๊ณ back
์์๋ง ์ญ์ ํ๋ค. ํ์ง๋ง ๋ฑ์ front
๋ก ์ฝ์
/์ญ์ ๊ฐ ๊ฐ๋ฅํ๊ณ , back
์์๋ ์ฝ์
/์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
Python์์ ํ๋ฅผ ์ฌ์ฉํ ๋๋ collections์ deque๋ฅผ ์ฌ์ฉํ๋ฉด๋๋ค. Deque์ ํ์ชฝ ๋ฐฉํฅ์์๋ง ์ญ์ ํ๊ณ , ๋ฐ๋์ชฝ์์๋ง ์ฝ์
ํ๋ค๋ฉด ํ์ ๊ฐ๋ค.
Python - Queue / deque
from collections import deque
queue = deque()
queue.append(4) # ์ฝ์
queue.append(3)
queue.popleft() # append ํ๋ฉด ์ค๋ฅธ์ชฝ์์ ์ฝ์
ํ๋ฏ๋ก, pop์ ์ผ์ชฝ์์ ํด์ค๋ค.
queue.reverse() # ์์๋ฅผ ๋ค์ง๋ ๋ฉ์๋๋ ์๋ค.