Algorithm(알고리즘)/백준

22_백준 _10828번 파이썬 스택

고로케 2021. 6. 20.
반응형

시간초과가 안나게 짜는게 핵심이라던데
다른 기법 없이 함수 정의해서 작성했더니 정답이 됐다.
시간초과 뜰땐 입력을 input이 아닌 .readline 으로 받고
제출을 .pypy 로 제출해보도록 하자!

  • 풀이
from sys import stdin


# 정수 X를 스택에 넣는 연산이다.
def push(x):
    stack.append(x)


# 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.
# 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def pop():
    if (not stack):
        return -1
    else:
        return stack.pop()


# 스택에 들어있는 정수의 개수를 출력한다.
def size():
    return len(stack)


# 스택이 비어있으면 1, 아니면 0을 출력한다.
def empty():
    return 0 if stack else 1


# 스택의 가장 위에 있는 정수를 출력한다.
# 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def top():
    return stack[-1] if stack else -1


N = int(stdin.readline().rstrip())
stack = []

for _ in range(N):
    input = stdin.readline().split()

    order = input[0]

    if order == "push":
        push(input[1])
    elif order == "pop":
        print(pop())
    elif order == "size":
        print(size())
    elif order == "empty":
        print(empty())
    elif order == "top":
        print(top())

 

반응형

댓글