--- title: 'Queue using Two Stacks' disqus: hackmd --- Queue using Two Stacks === :::info [python] **deque** ::: Previous --- [**Python**]에서 Stack과 Queue의 기능인 deque > from collections import deque > dq = deque('korea') > deque(['k','o','r','e','a']) **1. Stack 구현 : dq.append()** > dq.append('N') > deque(['k','o','r','e','a','n']) : 맨 **끝**에서부터 원소가 추가입력이 된다. > dq.pop() > deque(['k','o','r','e','a']) : 맨 **끝**에 있는 원소부터 사라진다. **2. Queue 구현** > dq.appendleft('s') > deque(['s','k','o','r','e','a']) : 맨 **앞**에서부터 원소가 추가입력이 된다. > dq.popleft() > deque(['k','o','r','e','a']) : 맨 **앞**에 있는 원소부터 사라진다. / 그리고 삭제되는 원소가 출력된다. **3. 확장하기** > dq.extend('you') > deque(['k','o','r','e','a','y','o','u']) > dq.extendleft('you') > deqye(['y','o','u','k','o','r','e','a','y','o','u']) - 그 밖에 - insert() - remove() - reverse() Content --- - 각 명령어에 따라서 queue를 수행한다. - 명령어에 따른 조건 및 활동 - '1' queue에 append - '2' queue에 삭제 popleft - '3' 출력된다 ```gherkin= form collection import deque dq = deque() for _ in range(int(input())): order = input().split() if order[0] == '1': dq.append(int(order[1])) elif order[0] == '2': dq.popleft() else: print(dq[0]) ``` Result --- ![](https://hackmd.io/_uploads/HJBSaaPgp.png)