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()) # 탑 연산