Algorithm/백준

항해99 리부트코스 알고리즘 2주 1일차 백준 10828 스택

Albosa2lol 2024. 7. 25. 17:01

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

 

import sys
input = sys.stdin.read

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)  # 아이템 추가

    def pop(self):
        if not self.items:
            return -1  # 비어있으면 -1 반환
        return self.items.pop()  # 아이템 제거 후 반환

    def size(self):
        return len(self.items)  # 크기 반환

    def empty(self):
        return 1 if not self.items else 0  # 비어있으면 1, 아니면 0 반환

    def top(self):
        if not self.items:
            return -1  # 비어있으면 -1 반환
        return self.items[-1]  # 가장 위의 아이템 반환

stack = Stack()
commands = input().splitlines()

for command in commands:
    if command.startswith("push"):
        _, value = command.split()
        stack.push(int(value))  # 푸시 연산
    elif command == "pop":
        print(stack.pop())  # 팝 연산
    elif command == "size":
        print(stack.size())  # 사이즈 연산
    elif command == "empty":
        print(stack.empty())  # 비었는지 확인 연산
    elif command == "top":
        print(stack.top())  # 탑 연산