한쪽 끝에서만 자료를 넣고 다른 한쪽 끝에서만 뺄 수 있는 자료구조
먼저 넣은 것이 가장 먼저 나오기 때문에 First In First Out(FIFO) 라고도 한다.
import sys
# push X: 정수 X를 큐에 넣는 연산이다.
def push(queue, x):
queue.append(x)
return queue
# pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def pop(queue):
if(len(queue)!= 0):
print(queue.pop(0))
else:
print(-1)
return queue
# size: 큐에 들어있는 정수의 개수를 출력한다.
def size(queue):
print(len(queue))
# empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
def empty(queue):
if(len(queue) != 0):
print(0)
else:
print(1)
# front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def front(queue):
if(len(queue) != 0):
print(queue[0])
else:
print(-1)
# back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def back(queue):
if(len(queue) != 0):
print(queue[-1])
else:
print(-1)
sys.stdin.readline()
queue = []
for line in sys.stdin:
if ("push" in line):
push(queue, line.split()[-1])
elif ("pop" in line):
pop(queue)
elif ("size" in line):
size(queue)
elif ("empty" in line):
empty(queue)
elif ("front" in line):
front(queue)
elif ( "back" in line ):
back(queue)
else :
print("error")
백준 2675 - 문자열 반복(파이썬) (0) | 2021.01.08 |
---|---|
백준 1406 - 에디터 (파이썬) (0) | 2020.12.27 |
백준 9012 - 괄호 (파이썬) (0) | 2020.12.27 |
백준 10828 - 스택 (자료구조, 파이썬) (0) | 2020.12.27 |
백준 1924 - 2007년 (파이썬) (0) | 2020.12.27 |