codes/baekjoon

28278 스택 2

카제xd 2025. 1. 3. 02:24

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

 

import sys

input = sys.stdin.readline
stack = []

def command(n, k=None):
    if n == '1':
        stack.append(k)
    elif n == '2':
        if stack:
            print(stack.pop())
        else:
            print(-1)
    elif n == '3':
        print(len(stack))
    elif n == '4':
        if stack:
            print(0)
        else:
            print(1)
    elif n == '5':
        if stack:
            print(int(stack[-1]))
        else:
            print(-1)


N = int(input())

for _ in range(N):
    X = input().split()
    if len(X) == 1:
        command(X[0])
    else:
        command(X[0], X[1])

 

 

[개선할 점]

- input의 길이가 서로 다를 수 있는 부분이 은근 생소했던 부분이었는데, 사실 함수 구성을 하지 않고 바로 if문을 했다면, if X[0] == '1': stack.append(X[1]) 정도로 해결해볼 수도 있었다.

'codes > baekjoon' 카테고리의 다른 글

10773 제로  (0) 2025.01.04
24511 queuestack  (0) 2024.12.17
11478 서로 다른 부분 문자열의 개수  (0) 2024.12.15