10828번: 스택

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

www.acmicpc.net

#!/bin/python3

def top(stack):
    if len(stack):
        return stack[::-1][0]
    else:
        return -1
    
def size(stack):
    return len(stack)

def empty(stack):
    if len(stack) == 0:
        return 1
    else:
        return 0

def pop(stack):
    if len(stack):
        return stack.pop()
    else:
        return -1
    
def push(stack, operation):
    stack.append(operation)

if __name__ == "__main__":
    stack = list()
    operation = list()
    count = int(input(""))
    
    while count > 0:
        operation.append(input("").split(" "))
        count -= 1
    
    for op in operation:
        if len(op) == 1:
            if op[0] == 'top':
                print(top(stack))
            elif op[0] == "size":
                print(size(stack))
            elif op[0] == "empty":
                print(empty(stack))            
            elif op[0] == "pop":
                print(pop(stack))
        else:
            push(stack, op[1])
    

'BaekJoon' 카테고리의 다른 글

[BaekJoon] - 10936 base64 디코딩  (0) 2019.10.12
[BaekJoon] - 10935 base64 인코딩  (0) 2019.10.12
[BaekJoon] - 10845 큐  (0) 2019.10.12
[BaekJoon] - 10828 스택  (0) 2019.10.12
[BaekJoon] 1158번 조세퍼스 문제  (0) 2019.10.10
[BaekJoon] - 1004번 어린왕자  (0) 2019.10.05