[백준] 10828번(스택)

·2023년 4월 28일

백준 문제풀이

목록 보기
53/159

백준 10828번


최종 제출 코드

import sys

input = sys.stdin.readline

n = int(input())

stack = []

for i in range(n):

  command = input().rstrip()
  
  if command=='pop':
    if len(stack) == 0:
      print(-1)
    else:
      print(stack[len(stack)-1])
      del stack[len(stack)-1]
      
  elif command=='top':
    if len(stack) == 0:
      print(-1)
    else:
      print(stack[len(stack)-1])

  elif command=='size':
    print(len(stack))

  elif command=='empty':
    if len(stack)== 0:
      print(1)
    else:
      print(0)

  else:
    stack.append(int(command[5:]))

발생한 오류

◼ 시간 초과 오류

  • 입력값이 많아서 input을 사용하면 시간초과가 뜸
  • sys.stdin.readline을 이용해주면 된다

◼ 런타임 에러

  • sys.stdin.readline으로 입력값을 받고 개행문자를 제거해주지 않아서 발생한 오류
  • sys.stdin.readline은 입력받을 때 개행문자를 포함해서 입력 받기 때문에 필요에 따라 개행문자를 제거해줘야함
    rstrip() 활용해서 오른쪽의 화이트 스페이스 제거
    ✔ 당연히 input() != input().rstrip()
profile
백엔드 개발자가 되고 싶어요(22.8.15~)

0개의 댓글