-
[๋ฐฑ์ค 10845๋ฒ] - Queue / PythonData Engineering/์๊ณ ๋ฆฌ์ฆ - Python 2021. 6. 30. 18:32
๐Deque
โช ํ(Queue)๋ ์ ์ ์ ์ถ ๋ฐฉ์์ด๋ค.
โช ๊ทธ๋ฌ๋ ์๋ฃ์ ๊ฐ์๊ฐ ๋ง์์ง๋ฉด ํ์ ์ฐ์ฐ์ด ๋๋ ค์ง๊ธฐ ๋๋ฌธ์ ๋ฐํฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
โช ๋ฐํฌ(Deque)๋ ์๋ฐฉํฅ ํ๋ก, ์๋ค ์์ชฝ์์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ค.
๊ทธ๋์ ๋๋ ๋ฐํฌ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.
๐ Deque์ ์ฅ์
โช ์๋ค์์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ append, pop์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
โช ์คํ, ํ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
[๋ฐฑ์ค 10845๋ฒ] - Queue
https://www.acmicpc.net/problem/10845
10845๋ฒ: ํ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
(์ ๋ต)
from collections import deque import sys n=int(input()) queue=deque() def push(x): queue.append(x) def pop(): return queue.popleft() if queue else -1 def size(): return len(queue) def empty(): return 0 if queue else 1 def front(): return queue[0] if queue else -1 def back(): return queue[-1] if queue else -1 for _ in range(n): cmd=sys.stdin.readline().split() if cmd[0]=='push': push(cmd[1]) if cmd[0]=='pop': print(pop()) if cmd[0]=='size': print(size()) if cmd[0]=='empty': print(empty()) if cmd[0]=='front': print(front()) if cmd[0]=='back': print(back())
๐ Deque ๋ฉ์๋
โช deque.append(value): value๋ฅผ ์ค๋ฅธ์ชฝ ๋์ ์ฝ์ ํ๋ค.
โช deque.appendleft(value): value๋ฅผ ์ผ์ชฝ ๋์ ์ฝ์ ํ๋ค.
โช deque.pop(): ์ค๋ฅธ์ชฝ ๋ ์์๋ฅผ ๊ฐ์ ธ์ค๋ฉด์ ๋์์ ์ญ์ ํ๋ค.
โช deque.popleft(): ์ผ์ชฝ ๋ ์์๋ฅผ ๊ฐ์ ธ์ค๋ฉด์ ๋์์ ์ญ์ ํ๋ค.
โช deque.extend(array): ๋ฐฐ์ด(array)์ ์ํํ๋ฉฐ ํด๋น ์์๋ค์ ์ค๋ฅธ์ชฝ์ ์ถ๊ฐํ๋ค.
โช deque.extendleft(array): ๋ฐฐ์ด(array)์ ์ํํ๋ฉฐ ํด๋น ์์๋ค์ ์ผ์ชฝ์ ์ถ๊ฐํ๋ค.
โช deque.remove(value): value๋ฅผ ์ฐพ์์ ์ญ์ ํ๋ค.
๋ฆฌ์คํธ์ ๋นํด์ push, pop์ ๋ํด ๋น ๋ฅธ ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง์ ํ์ธํ ์ ์์๋ค.
์๊ฐ์ด๊ณผ๋ฅผ ๋ฐฉ์งํ๊ณ ์ถ์ ๋๋ Deque๋ฅผ ์ฌ์ฉํ๋๋ก ํ์!