본문 바로가기
백준 문제풀이

baekjoon - python - 10828

by winston1214 2020. 9. 5.
반응형

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

 

10828번: 스택

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

www.acmicpc.net

 

# @Author YoungMinKim
# baekjoon

class stack:
    def __init__(self):
        self.tmp = []
    def push(self,x):
        self.tmp.append(x)
    def pop(self):
        if self.size() == 0:
            return -1
        else:
            return self.tmp.pop(-1)
    def size(self):
        return len(self.tmp)
    def empty(self):
        if self.size() == 0:
            return 1
        else:
            return 0
    def top(self):
        if self.size()==0:
            return -1
        else:
            return self.tmp[-1]
import sys
s = stack()
N = int(sys.stdin.readline())
for _ in range(N):
    x = list(sys.stdin.readline().split())
    if x[0] == 'push':
        s.push(int(x[1]))
    elif x[0] == 'pop':
        print(s.pop())
    elif x[0]=='top':
        print(s.top())
    elif x[0] == 'size':
        print(s.size())
    else:
        print(s.empty())

일부러 stack class를 이용하였고 다른 stack 문제를 풀 때 이용하기 쉽게 구현하였다.

 

 

반응형

'백준 문제풀이' 카테고리의 다른 글

baekjoon - python - 10950  (0) 2020.09.05
baekjoon - python - 10926  (0) 2020.09.05
baekjoon - python - 1427  (0) 2020.09.04
baekjoon - python - 10886  (0) 2020.09.03
baekjoon - python - 10872  (0) 2020.09.02

댓글