๋ฑ(Deque)
- ์ ๋์์๋ง ์๋ฃ๋ฅผ ๋ฃ๊ณ ์ ๋์์ ๋บ ์ ์๋ ์๋ฃ๊ตฌ์กฐ
Double-ended queue์ ์ฝ์์ด๋ค.push_front: ๋ฑ์ ์์ ์๋ฃ๋ฅผ ๋ฃ๋ ์ฐ์ฐpush_back: ๋ฑ์ ๋ค์ ์๋ฃ๋ฅผ ๋ฃ๋ ์ฐ์ฐpop_front: ๋ฑ์ ์์์ ์๋ฃ๋ฅผ ๋นผ๋ ์ฐ์ฐpop_back: ๋ฑ์ ๋์์ ์๋ฃ๋ฅผ ๋นผ๋ ์ฐ์ฐfront: ๋ฑ์ ๊ฐ์ฅ ์์ ์๋ ์๋ฃ๋ฅผ ๋ณด๋ ์ฐ์ฐback: ๋ฑ์ ๊ฐ์ฅ ๋ค์ ์๋ ์๋ฃ๋ฅผ ๋ณด๋ ์ฐ์ฐ
1. ๋ฑ - 10866
python
1# ๋ฑ์ ์๊ณผ ๋ค์์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๊ณ , ๋ฑ์ ๊ธธ์ด๋ ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ ์ํ2import sys3from collections import deque45input = sys.stdin.readline # ์ ๋ ฅ์ ๋น ๋ฅด๊ฒ ๋ฐ๊ธฐ ์ํด sys.stdin.readline์ ์ฌ์ฉ6n = int(input()) # ๋ช ๋ น์ด์ ๊ฐ์ n์ ์ ๋ ฅ๋ฐ์ต๋๋ค.7dequeList = deque() # ๋ฑ์ ์์ฑ89for _ in range(n):10line = input().split() # ์ ๋ ฅ์ ๊ณต๋ฐฑ์ผ๋ก ๋๋์ด ๋ช ๋ น์ด์ ๊ฐ(์ซ์)์ ๋ถ๋ฆฌ11command = line[0] # ๋ช ๋ น์ด ๋ถ๋ถ์ ์ถ์ถ1213# ๐ (1) push_front X: ์ ์ X๋ฅผ ๋ฑ์ ์์ ๋ฃ๋๋ค14if command == "push_front":15num = int(line[1])16dequeList.appendleft(num)17# ๐ (2) push_back X: ์ ์ X๋ฅผ ๋ฑ์ ๋ค์ ๋ฃ๋๋ค.18elif command == "push_back":19num = int(line[1])20dequeList.append(num)21# ๐ (3) pop_front: ๋ฑ์ ๊ฐ์ฅ ์์ ์๋ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค.22# ๋ง์ฝ, ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅ23elif command == "pop_front":24if dequeList:25print(dequeList.popleft())26else:27print(-1)28# ๐ (4) pop_back: ๋ฑ์ ๊ฐ์ฅ ๋ค์ ์๋ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค.29# ๋ง์ฝ, ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅ30elif command == "pop_back":31if dequeList:32print(dequeList.pop())33else:34print(-1)35# ๐ (5) size: ๋ฑ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅ36elif command == "size":37print(len(dequeList))38# ๐ (6) empty: ๋ฑ์ด ๋น์ด์์ผ๋ฉด 1์, ์๋๋ฉด 0์ ์ถ๋ ฅ39elif command == "empty":40print(0 if dequeList else 1)41# ๐ (7) front: ๋ฑ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅ42elif command == "front":43if dequeList:44print(dequeList[0])45else:46print(-1)47# ๐ (8) back: ๋ฑ์ ๊ฐ์ฅ ๋ค์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅ48elif command == "back":49if dequeList:50print(dequeList[-1])51else:52print(-1)