본문 바로가기
Coding 문제 풀이

[10828번]스택 코딩

by 김수호님 2018. 12. 17.
728x90
반응형

문제


정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 다섯 가지이다.

  • push X: 정수 X를 스택에 넣는 연산이다.
  • pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 스택에 들어있는 정수의 개수를 출력한다.
  • empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
  • top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.




코딩


N=int(input())
class Stack_Making():#스택 클래스로 만듬
    def __init__(self):
        self.ret=[]

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

    def pop(self):
        try:
            print(self.ret.pop())
        except:
            print("-1")

    def top(self):
        try:
            print(self.ret[-1])
        except:
            print("-1")

    def size(self):
        print(len(self.ret))

    def empty(self):
        if len(self.ret):
            print(0)
        else:
            print(1)
            
result=Stack_Making()
for x in range(N):
    msg=input()
    ret=msg.split()
    if len(ret)==1:
        if ret[0] in ['top','TOP']:
            result.top()
        elif ret[0] in ['size','SIZE']:
            result.size()
        elif ret[0] in ['empty','EMPTY']:
            result.empty()
        elif ret[0] in ['pop','POP']:
            result.pop()
    elif len(ret)==2:
        result.push(ret[1])



728x90
반응형

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

[9012번]괄호 코딩  (1) 2018.12.17
[1874번]스택 수열  (1) 2018.12.17
[1929번]소수 구하기 코딩  (0) 2018.12.17
[2581번]소수 코딩  (1) 2018.12.17
[6064번]카잉 달력 코딩  (2) 2018.12.17