백준 - 스택(10828) ,큐(10845)

김혁·2023년 1월 25일
0

백준알고리즘

목록 보기
8/13

스택(10828)

기초적인 스택의 기능을 알아보는 문제였다.

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 같은 경우는 문자열의 크기로 다른 명령어와 구분 지었다.

큐(10845)

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는 동일하게 구현하였다

profile
군도리

0개의 댓글