간만에 푸니까 파이썬 입출력 시간초과 제한에 대해서 까먹었다.
풀이는 맞았는데 시간초과가 나서 혹시나 했더니 역시나였다.
import sys
input = sys.stdin.readline
def main():
n = int(input())
stack = []
for _ in range(n):
oper = input().strip()
#push X: 정수 X를 스택에 넣는 연산이다.
if len(oper) > 3 and oper[:4] == 'push':
oper, x = oper.split(' ')
x = int(x)
stack.append(x)
#pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
if oper == 'pop':
if stack:
x = stack.pop()
print(x)
else:
print(-1)
#size: 스택에 들어있는 정수의 개수를 출력한다.
if oper == 'size':
print(len(stack))
#empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
if oper == 'empty':
if not stack:
print(1)
else:
print(0)
#top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
if oper == 'top':
if stack:
print(stack[-1])
else:
print(-1)
if __name__ == '__main__':
main()
그냥 경우에 따라 스택 구현하면 되는 정말 간단한 문제.
웜엄 ..
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 1926. 그림 (0) | 2023.01.27 |
---|---|
[ BOJ / 파이썬 ] 4949.균형잡힌 세상 (0) | 2023.01.27 |
[ 백준 ] 1406 에디터 (0) | 2023.01.22 |
[ BOJ / 파이썬 ] 23290 마법사 (0) | 2022.10.15 |
[ BOJ / 파이썬 ] 14503 로봇 청소기 (0) | 2022.10.10 |