[Python][백준] 10828번 스택

신남·2023년 1월 17일

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

공부 날짜 : 2023.01.17
정답 참조 여부 : x

스택에 특정 명령에 따라 명령을 수행하는 코드를 만드는 문제이다.


쉽다.
실버4라서 쉬운건지 파이썬이라서 쉬운건지는 모르겠다.

자료구조를 공부해야 할거 같아서 자료구조 관련 추천 문제를 푼거긴 한데
스택이 LIFO의 구조를 가진 자료구조라는건 알겠다.

파이썬에서는 리스트의 기능은 append와 pop로 쉽게 구현하긴 했는데
오히려 더 혼란스럽다. 스택이 단순히 개념이라 이렇게 푸는게 맞는건지,
아니면 내가 모르는데 이상하게 문제를 푼건지 이해되지 않는다.
일단 문제는 정답이지만 찝찝한 기분이다.

####소스코드

import sys
input = sys.stdin.readline
###########################################


def Push(x):
    stack.append(x)

def Pop():
    if len(stack) == 0:
        print(-1)
        return

    print(stack.pop(-1))

def Size():
    print(len(stack))

def Empty():
    if len(stack) == 0:
        print(1)
    else:
        print(0)

def Top():
    if len(stack) == 0:
        print(-1)
        return

    print(stack[-1])


###########################################
num_order = int(input())
stack = []

for _ in range(num_order):
    order = list(input().split())

    if order[0] == "push":
        Push(order[1])
    if order[0] == "pop":
        Pop()
    if order[0] == "size":
        Size()
    if order[0] == "empty":
        Empty()
    if order[0] == "top":
        Top()

0개의 댓글