(시간/공간복잡도 제약도 추가하면 좋을것 같아요!)
import sys
num = int(sys.stdin.readline())
stack = []
for i in range(num):
type = sys.stdin.readline().split()
if type[0] == "push":
stack.append(type[1])
elif type[0] == "pop":
if len(stack) > 0:
print(stack.pop())
else: print(-1)
elif type[0] == "size":
print(len(stack))
elif type[0] == "empty":
if len(stack) > 0: print(0)
else: print(1)
elif type[0] == "top":
if len(stack) > 0: print(stack[-1])
else: print(-1)
O(1)
항상 혼자 코딩테스트 준비를 하고, 여러 문제들을 풀었는데 나는 역시 강제성이 조금이라도 들어가 있어야 하는 것 같다..
솔직히 오답노트를 작성하기 전까지만 해도 그냥 머리나 주석으로 남기는 것도 괜찮지 않나? 왜 굳이 오답노트를 할 까.. 생각을 했는데 막상 따로 남겨보니 왜 해야하는지 알 것 같다.
머리속 or 주석으로 간단하게 남기는 것도 좋겠지만, 글로 내가 어떻게 생각했고 어떻게 다시 생각했는지를 정리하니 더 확실하게 와닿는 것 같다.
역시 사람들이 하는 거에는 이유가 있다는걸 다시 한 번 느낀다..
귀찮음이 몰려와도 해야지 ..
찾아보니 input()이 내부에서 처리하는 작업이 많아서 시간이 오래걸린다고 나와있다. 단순히 콘솔에서 입력받을 땐 괜찮겠지만 남용하는 것을 지양해야할 것 같다.
대신 sys.stdin.readline() 해당 라이브러리를 사용해야지
(근데 왜 strip()은 안된거지 ?)