배고픈 개발자 이야기
3.10845 큐 본문
728x90
문제 - 큐를 구현하고 명령어에 맞게 출력하는 문제
push X : 정수 X를 큐에 삽입
pop : 큐의 앞에 있는 정수를 없애고, 그 수를 출력합니다. 없는 경우 -1 출력
size : 큐에 들어있는 원소의 개수 출력
empty : 큐가 비어있으면 1, 그렇지 않으면 0을 출력
front : 큐의 가장 앞에있는 원소 출력, 원소가 없는 경우에는 -1 출력
back : 큐의 가장 뒤에있는 원소 출력, 원소가 없는 경우에는 -1 출력
첫째 줄에는 N (1 <= N <= 10000)이 주어지고 그 수만큼 명령을 받아 들입니다.
출력값은 한줄에 하나씩 출력합니다.
# -*- coding:utf-8 -*-
import collections
import sys
from sys import stdin,stdout
sys.setrecursionlimit(1500)
d = collections.deque()
data = int(stdin.readline(15)) # 명령의 갯수
for _ in range(data):
cmd = stdin.readline(25)
if "push" in cmd:
val = int(cmd.strip().split(" ")[1])
d.append(val) # 오른쪽에 추가, 왼쪽에 추가하려면 appendleft()
elif "pop" in cmd:
if not d:
stdout.write(str(-1)+"\n")
else:
stdout.write(str(d.popleft())+"\n") # 오른쪽 끝값을 가져오면서 제거, 왼쪽은 popleft()
elif "size" in cmd:
stdout.write(str(len(d))+"\n")
elif "empty" in cmd:
if not d:
stdout.write(str(1)+"\n")
else:
stdout.write(str(0)+"\n")
elif "front" in cmd:
if not d:
stdout.write(str(-1)+"\n")
else:
stdout.write(str(d[0])+"\n") # 가장 왼쪽값, -1 가장 오른쪽값
elif "back" in cmd:
if not d:
stdout.write(str(-1)+"\n")
else:
stdout.write(str(d[-1])+"\n")
'알고리즘 문제 > BAEKJOON' 카테고리의 다른 글
1000. A+B (feat.C++) (0) | 2019.09.17 |
---|---|
2.10828 스택 (0) | 2019.09.14 |
1.4740 (0) | 2019.09.14 |
0.1158 조세퍼스 문제 (feat.PYTHON) (0) | 2019.09.14 |
Comments