성장일기
[python] 백준 10828 - 스택 본문
첫째 줄에 N이 주어지고
이후 N개의 줄에 명령이 주어지는 문제
- push X: 정수 X를 스택에 넣는 연산이다.
- pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.
만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. - size: 스택에 들어있는 정수의 개수를 출력한다.
- empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
- top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
import sys
n=int(sys.stdin.readline().rstrip()) #숫자 받아오기
li=[]
for i in range(n):
x=sys.stdin.readline().rstrip()
if x.startswith('push'): #push 구현
li.append(x.split()[-1]) #뒤의 숫자를 리스트에 append
elif x=='pop':
if li==[]:
print(-1)
else:
print(li[-1]) #가장 나중에 들어온 요소 print
del li[-1]
elif x=='size':
print(len(li))
elif x=='empty':
if li==[]:
print(1)
else:
print(0)
elif x=='top':
if li==[]:
print(-1)
else:
print(li[-1])
제출을 이렇게 하고 통과했다.
하지만 뒤에 비슷한 큐 문제에서는 계속 시간초과 문제가 생긴다
자료형을 리스트가 아닌 큐로 만들면 괜찮아진다!
'알고리즘 문제' 카테고리의 다른 글
[python] 백준 1927 - 최소 힙 (0) | 2021.12.23 |
---|---|
백준 11279 - 최대 힙 (0) | 2021.12.23 |
[python] 백준 18258 - 큐 2 (0) | 2021.12.23 |
[python] 백준 10773 - 제로 (0) | 2021.12.23 |
😶첫 시작 (0) | 2021.12.23 |