Week 01 ~ 04 : 알고리즘 문제 풀이

파이썬 백준 10828 스택

정글러 2021. 11. 12. 23:01
import sys  
input = sys.stdin.readline

stack = []
def stk(inp) :
    if inp[0] == 'push' :
        stack.append(int(inp[1]))
    elif inp[0] == 'pop' :
        if stack == [] :
            print(-1)
        else :
            print(stack[-1])
            del stack[-1]
    elif inp[0] == 'size' :
        print(len(stack))
    elif inp[0] == 'empty' :
        if stack == [] :
            print(1)
        else :
            print(0)
    elif inp[0] == 'top' :
        if stack == [] :
            print(-1)
        else :
            print(stack[-1])
   
n = int(input())
for i in range(n) :
    x = list(input().split())
    stk(x)

스택을 구현한다기보단 시키는대로 구현하는 과정에서 스택이 뭔지 이해하는데 도와주는 문제같다.

그냥 list를 만들고 하라는대로 구현하고 나면, list를 생성했지만 마지막 원소밖에 건들지 않는다.

결과적으로 후입선출의 성질을 스택 구조가 된다.