문제
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 |