0을 부른 경우에 가장 최근에 쓴 수를 지운다는 문장에서 스택을 사용하면 되겠다는 생각을 했다.
차례대로 입력을 받으면서 0인 경우에 stack에서 pop하고 0이 아닌 경우에 stack에 push했다.
입력이 끝나면 내장함수인 sum을 이용해서 총합을 구했다.
import sys
k = int(input())
stack = []
for _ in range(k):
n = int(sys.stdin.readline())
if n == 0:
stack.pop()
else:
stack.append(n)
print(sum(stack))
막혔던 점은 없었다. 가장 큰 값이나 가장 작은 값을 삭제했어야하는 경우에는 heap을 사용하는게 제일 좋았을 것 같다는 생각을 했다.
새롭게 알게된 것은 없다.