[伯俊]#10828-スタック(Python,Python)


スタック


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

私が書いたコード


Inputを使うだけなのでタイムアウトsysが表示されますstdin.readlineを使用しました.
import sys


input = sys.stdin.readline

n = int(input())

stack = []
for _ in range(n):
    line = input().rstrip()

    if line[-1].isdigit():
        stack.append(int(line[5:]))
    elif line == "pop":
        print(stack.pop() if stack else -1)
    elif line == "size":
        print(len(stack))
    elif line == "empty":
        print(1 if not stack else 0)
    elif line == "top":
        print(stack[-1] if stack else -1)

コードの変更


pushだけが数字を含む命令なので、どうすればいいのか悩んでいましたが、ネットで調べてみると、splitを使う方が分かりやすい方法のように思いました.
import sys


input = sys.stdin.readline

n = int(input())

stack = []
for _ in range(n):
    line = input().split()

    if line[0] == "push":
        stack.append(int(line[1]))
    elif line[0] == "pop":
        print(stack.pop() if stack else -1)
    elif line[0] == "size":
        print(len(stack))
    elif line[0] == "empty":
        print(1 if not stack else 0)
    elif line[0] == "top":
        print(stack[-1] if stack else -1)