[백준/Python] 10828번 : 스택

문제

https://www.acmicpc.net/problem/10828

  • 스택 자료구조 문제

풀이

Python의 list 타입을 활용, 내장된 함수들을 통해 쉽게 풀 수 있는 문제다. 문제를 꼼꼼하게 읽지 않아 처음에 시간 초과가 발생하여 sys.readline()을 통해 input을 처리하였다.

if - elif문을 선호하지 않아서 if문과 continue를 통해서 input case를 분기하여 처리했다.


import sys
input = sys.stdin.readline

st = []
# input N
N = int(input())


# loop
for _ in range(N):
    cmd = list(input().split())
    if cmd[0] == "push":
        st.append(int(cmd[1]))
        continue

    if cmd[0] == "pop":
        if len(st) == 0:
            print(-1)
        else:
            print(st.pop())
        continue

    if cmd[0] == "top":
        if len(st) == 0:
            print(-1)
        else:
            print(st[-1])
        continue

    if cmd[0] == "size":
        print(len(st))
        continue

    if cmd[0] == "empty":
        if len(st) == 0:
            print(1)
        else:
            print(0)
        continue