๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป/[๐๐ฒ๐ญ๐ก๐จ๐ง] ๐๐ฅ๐ ๐จ๐ซ๐ข๐ญ๐ก๐ฆ
[Python] ๋ฐํฌ(deque)
๐คRyusun๐ค
2023. 4. 22. 16:49
Deque
- ํ(queue)๋ ์ ์ ์ ์ถ(FIFO) ๋ฐฉ์
- ๋ฐํฌ(deque) = ์๋ฐฉํฅ ํ
- ์, ๋ค ์์ชฝ ๋ฐฉํฅ์์ ์๋ฆฌ๋จผํธ(element)๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ค.
- ๋ฐํฌ(deque)๋ ์คํ์ฒ๋ผ ์ฌ์ฉํ ์๋ ์๊ณ , ํ ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- ์ต์ ํ๋ ์ฐ์ฐ ์๋๋ฅผ ์ ๊ณตํ๋ค.
- ๋ฐํฌ๋ ํนํ push/pop ์ฐ์ฐ์ด ๋น๋ฒํ ์๊ณ ๋ฆฌ์ฆ์์ ๋ฆฌ์คํธ๋ณด๋ค ๋น ๋ฅด๋ค.
๋ฐํฌ(deque) ๋ฉ์๋(method)
- deque.append(item): item์ ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.appendleft(item): item์ ๋ฐํฌ์ ์ผ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.pop(): ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.popleft(): ๋ฐํฌ์ ์ผ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.extend(array): ์ฃผ์ด์ง ๋ฐฐ์ด(array)์ ์ํํ๋ฉด์ ๋ฐํฌ์ ์ค๋ฅธ์ชฝ์ ์ถ๊ฐํ๋ค.
- deque.extendleft(array): ์ฃผ์ด์ง ๋ฐฐ์ด(array)์ ์ํํ๋ฉด์ ๋ฐํฌ์ ์ผ์ชฝ์ ์ถ๊ฐํ๋ค.
- deque.remove(item): item์ ๋ฐํฌ์์ ์ฐพ์ ์ญ์ ํ๋ค.
- deque.rotate(num): ๋ฐํฌ๋ฅผ num๋งํผ ํ์ ํ๋ค.(์์๋ฉด ์ค๋ฅธ์ชฝ, ์์๋ฉด ์ผ์ชฝ)
from collections import deque
deq = deque()
# Add element to the start
deq.appendleft(10)
# Add element to the end
deq.append(0)
# Pop element from the start
deq.popleft()
# Pop element from the end
deq.pop()