BOJ-10828 - Python

스택을 구현하는 문제이다. 처음엔 전역 변수 list, l과 함수들로 구현하였지만 백준 체점 도중 런타임 에러로 인하여 class로 스택을 구현하였으나 이 또한 백준 체점 도중 시간초과로 인해 input = sys.stdin.readline를 이용하여 시간을 단축시켰다. 풀이는 쉬웠으나 체점 기준에 맞추기 힘들었다.

import sys
input=sys.stdin.readline

class Stack:
    def __init__(self):
        self.len = 0
        self.list = []
    def push(self, n):
        self.len += 1
        self.list.append(n)
    def pop(self):
        if self.len == 0:
            return -1
        self.len -= 1
        return self.list.pop()
    def size(self):
        return self.len
    def empty(self):
        return 1 if self.len == 0 else 0
    def top(self):
        return self.list[-1] if self.len != 0 else -1

s = Stack()
for _ in range(int(input())):
    t = input().strip()
    if 'push' in t:
        num = list(t.split())[1]
        s.push(num)
    elif t == "pop": print(s.pop())
    elif t == 'size': print(s.size())
    elif t == 'empty': print(s.empty())
    elif t == 'top': print(s.top())
    else: print('none')

Written by@hyesungoh
Learning every moment

InstagramGitHubLinkedIn