풀이
import sys
N=int(sys.stdin.readline())
list=[] # 빈 리스트를 생성한다.
for i in range(N): # N의 숫자만큼
word=sys.stdin.readline().split() # 문장을 읽어온다.
if word[0]=='push':
list.append(word[1])
elif word[0]== 'pop':
if len(list)==0:
print(-1)
else:
print(list.pop())
elif word[0]=='size':
print(len(list))
elif word[0]=='empty':
if len(list)==0:
print(1)
else:
print(0)
elif word[0]=='top':
if len(list)==0:
print(-1)
else:
print(list[-1])
추가 설명
input()함수를 사용하여 텍스트를 입력받으면 시간 초과 에러가 발생하므로, sys 모듈을 import한 후 sys.stdin.readlines() 함수를 통해 시간 초과 문제를 해결하였다.
list 안에 원소가 존재하지 않는다는 내용을 len(list)==0으로 작성하였으나, if list: 으로 대체하는 것이 코드의 길이를 줄이고 가독성이 좋아지게 할 수 있는 좋은 방법인 것 같다.
'학과공부 > 자료구조' 카테고리의 다른 글
[백준] 1874번 - 스택 수열 (By Python) (0) | 2022.07.26 |
---|---|
[백준] 9012번 - 괄호 (By Python) (0) | 2022.07.24 |
[백준] 10866번 - 덱 (By Python) (0) | 2022.07.24 |
[백준] 10845번 - 큐 (By Python) (0) | 2022.07.24 |