백준 10828번 바로가기

백준 10866번, 백준 10845번과 매우 유사한 문제. 세부 조건만 잘 따져주면 쉽게 해결 가능하다.

나의 풀이

n,*l=open(0)
a=[]

for i in l:
  if (cmd:=(q:=i.split())[0]) == 'push': a.append(q[1])
  elif cmd == 'pop': print(a.pop() if a else -1)
  elif cmd == 'size': print(len(a))
  elif cmd == 'empty': print(0 if a else 1)
  elif cmd == 'top': print(a[-1] if a else -1)

CODE REVIEW

  1. 역시 open(0)을 이용해서 풀어내야 시간초과 제한에서 쉽게 벗어날 수 있다.
  2. 바다코끼리 연산자를 이용하여 같은 코드 반복을 피할 수 있다.