본문 바로가기

알고리즘/백준

백준 28278 - 스택 2

문제

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

 

 

풀이

# 백준 / 실버4 / 스택 2
import sys

stack = []

for _ in range(int(sys.stdin.readline())):
    ope = list(map(int,sys.stdin.readline().split()))
    
    if ope[0] == 1:
        stack.append(ope[1])
    elif ope[0] == 2:
        if stack:
            print(stack.pop())
        else:
            print(-1)
    elif ope[0] == 3:
        print(len(stack))
    elif ope[0] == 4:
        if stack:
            print(0)
        else:
            print(1)
    elif ope[0] == 5:
        if len(stack) > 0:
            print(stack[-1])
        else:
            print(-1)

 

처음에 시간초과가 났는데, sys.stdin.readline()을 통해 해결

 

개인적으론 입력에 sys.stdin.readline()을 잘 쓰진 않는다. (실제 코테에서는 입력이 보통 주어져서 ..)

 

그래도 백준 문제에서 입력이 늘어나면 sys.stdin.readline()을 쓰는것이 해결책이 될 수 있다고 생각한다.

 

+ int(sys.stdin.readline())을 하지 않으면 개행문자('\n')이 함께 입력된다.

'알고리즘 > 백준' 카테고리의 다른 글

백준 2579 - 계단 오르기  (0) 2024.06.04
백준 1120 - 문자  (0) 2024.06.03
백준 1920 - 수 찾기  (0) 2024.05.28
백준 11651 - 좌표 정렬하기 2  (0) 2024.05.27
백준 2485 - 가로수  (0) 2024.05.26