728x90
*문제 출처는 백준에 있습니다.
문제 제목: 스택
문제 사이트: https://www.acmicpc.net/problem/10828
나의 풀이
import sys
n = int(sys.stdin.readline())
new_stack = []
cnt = 0
for _ in range(n):
tmp = sys.stdin.readline().split()
if tmp[0] == "push":
new_stack.append(tmp[1])
elif tmp[0] == "pop":
if new_stack == []:
print(-1)
else:
print(new_stack[-1])
new_stack.pop()
elif tmp[0] == "size":
print(len(new_stack))
elif tmp[0] == "empty":
if new_stack == []:
print(1)
else:
print(0)
elif tmp[0] == "top" :
if new_stack !=[]:
print(new_stack[-1])
else:
print(-1)
import sys
sys.stdin.readline() 을 이용하여 입력 받는 시간을 단축하여, 시간초과를 없애주어야 정답으로 인정됨
※ 알아야 할 것
- stack은 LIFO(Last-in-First-Out) 자료구조로 마지막으로 들어간 것을 먼저 꺼낸다. (pop)
- 그냥 input을 넣으면 시간초과가 뜬다. 따라서 import sys의 sys.stdin.readline() 이용!
728x90
'coding test - python > 백준' 카테고리의 다른 글
백준 / Fly me to the Alpha Centauri / Python 파이썬 (0) | 2023.02.13 |
---|---|
백준 / 9012번 괄호 / Python 파이썬 (0) | 2022.05.11 |
백준 / 1929번 소수 구하기 / Python 파이썬 (0) | 2022.05.03 |
백준 / 2581번 소수 / Python 파이썬 (0) | 2022.05.03 |
백준 / 1978번 소수 찾기 / Python 파이썬 (0) | 2022.04.30 |