Algorithm/algorithm feedback

Boj 10828 스택 python

개복신 개발자 2021. 7. 19. 17:01
반응형

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

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net


내 풀이

import sys

input=sys.stdin.readline

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

    def push(self, num):
        self.list.append(num)

    def pop(self):
        if self.list:
            pop_num=self.list[-1]
            self.list = self.list[:-1]
            return pop_num
        else:
            return -1

    def size(self):
        return len(self.list)

    def empty(self):
        if self.list:
            return 0
        else:
            return 1

    def top(self):
        if len(self.list)>0:
            return self.list[-1]
        else:
            return -1
        

num=int(input())
stack=Stack()
for i in range(num):
    input_split=input().split()

    if input_split[0]=="push":
        stack.push(input_split[1])
    elif input_split[0]=="pop":
        print(stack.pop())
    elif input_split[0]=="size":
        print(stack.size())
    elif input_split[0]=="empty":
        print(stack.empty())
    elif input_split[0]=="top":
        print(stack.top())

-input().split()--> 띄어쓰기 된 단어대로 분리하여 입력받음

push 1--> input_split=["push", "1"]

 

반응형