기초적인 스택의 기능을 알아보는 문제였다.
import sys
n = int(sys.stdin.readline())
stack = []
for i in range(n):
comm = sys.stdin.readline().rstrip()
#push
if len(comm) >=6:
com, num = comm.split()
stack.append(num)
#pop
else:
if comm == 'pop':
if not stack:
print(-1)
else:
print(stack.pop())
#size
if comm == 'size':
print(len(stack))
#empty
if comm == 'empty':
if not stack:
print(1)
else:
print(0)
#top
if comm == 'top':
if not stack:
print(-1)
else:
print(stack[-1])
리뷰)
input으로 받게 되면 시간 초과가 나므로 readline을 이용했다.
push 같은 경우는 문자열의 크기로 다른 명령어와 구분 지었다.
import sys
from collections import deque
n = int(sys.stdin.readline())
queue = deque()
for i in range(n):
comm = sys.stdin.readline().rstrip()
#push
if len(comm) >=6:
com, num = comm.split()
queue.append(num)
#pop
else:
if comm == 'pop':
if not queue:
print(-1)
else:
print(queue.popleft())
#size
if comm == 'size':
print(len(queue))
#empty
if comm == 'empty':
if not queue:
print(1)
else:
print(0)
#front
if comm == 'front':
if not queue:
print(-1)
else:
print(queue[0])
#back
if comm == 'back':
if not queue:
print(-1)
else:
print(queue[-1])
리뷰)
큐의 기초 기능을 구현해보는 문제 였다.
push는 동일하게 구현하였다