๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/ALGORITHM

deque

by DevIseo 2022. 5. 31.

deque

๋ฐํฌ(deque)์˜ ๊ฐœ๋…

- ๋ณดํ†ต์˜ ํ(queue)๋Š” ์„ ์ž…์„ ์ถœ(FIFO)๋กœ ์ž‘๋™

- deque๋Š” ์–‘๋ฐฉํ–ฅํ!

- ์•ž, ๋’ค ์–‘์ชฝ ๋ฐฉํ–ฅ์—์„œ element๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ ๊ฐ€๋Šฅ

- ๋ฐํฌ๋Š” ์–‘ ๋ element์˜ append์™€ pop์ด ์••๋„์ ์œผ๋กœ ๋น ๋ฆ„

- ์ปจํ…Œ์ด๋„ˆ์˜ ์–‘๋ element์— ์ ‘๊ทผํ•ด ์‚ฝ์ž… ๋˜๋Š” ์ œ๊ฑฐ๋ฅผ ํ•  ๊ฒฝ์šฐ, ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์ŠคํŠธ(list)๊ฐ€ ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์— O(n)์ด ์†Œ์š”๋˜๋Š”๋ฐ ๋ฐ˜ํ•ด, ๋ฐํฌ(deque)๋Š” O(1)๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

๋ฐํฌ(deque) ์‚ฌ์šฉ๋ฒ•

- deque๋Š” importํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค!

from collectinos import deque

deq = deque()

#item์„ ๋ฐํฌ์˜ ์™ผ์ชฝ ๋์— ์‚ฝ์ž…
deq.appendleft(item)

#item์„ ๋ฐํฌ์˜ ์˜ค๋ฅธ์ชฝ ๋์— ์‚ฝ์ž…
deq.append(item)

#๋ฐํฌ์˜ ์˜ค๋ฅธ์ชฝ ๋ element๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋™์‹œ์— deque์—์„œ ์‚ญ์ œ
deq.pop()

#๋ฐํฌ์˜ ์™ผ์ชฝ ๋ element๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋™์‹œ์— deque์—์„œ ์‚ญ์ œ
deq.popleft()

#์ฃผ์–ด์ง„ array๋ฅผ ์ˆœํ™˜ํ•˜๋ฉด์„œ deque์˜ ์˜ค๋ฅธ์ชฝ์— ์ถ”๊ฐ€
deq.extend(array)

#์ฃผ์–ด์ง„ array๋ฅผ ์ˆœํ™˜ํ•˜๋ฉด์„œ deque์˜ ์™ผ์ชฝ์— ์ถ”๊ฐ€
deq.extendleft(array)

#item์„ deque์—์„œ ์ฐพ์•„ ์‚ญ์ œ
deq.remove(item)

#deque๋ฅผ num๋งŒํผ ํšŒ์ „ (์–‘์ˆ˜์ด๋ฉด ์˜ค๋ฅธ์ชฝ, ์Œ์ˆ˜์ด๋ฉด ์™ผ์ชฝ)
deq.rotate(num)

 

์ฐธ๊ณ ๋งํฌ

https://leonkong.cc/posts/python-deque.html

๋Œ“๊ธ€