BOJ/Python

[BOJ/백준] 10773 - 제로 (Python)

tjdms4327 2025. 1. 22. 19:21

문제

문제링크

장부에 기록할 잘못된 수를 부를 때마다 0을 외쳐 가장 최근에 쓴 수를 지울 것이다.

모든 수를 적은 후 장부의 적힌 수의 합을 구하라.

 

풀이

input이 0일 때는 장부에 수가 있다고 보장한다 했으니 0일 경우 stack에서 마지막 요소를 제거한다.

나머지 경우에는 수를 삽입하고 마지막 총합을 구한다.

 

코드

import sys
input=sys.stdin.readline

k=int(input())
stack=[]
for _ in range(k):
    i=int(input())
    if i==0:
        stack.pop()
    else:
        stack.append(i)
print(sum(stack))