์ƒˆ์†Œ์‹

๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์Šคํƒ, ํ, ๋ฑ (stack, queue, daque)

  • -

 

์Šคํƒ(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() # ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š” ๋ฉ”์„œ๋“œ๋„ ์žˆ๋‹ค.
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.