💡 stack이 비어있을 겨우 pop()을 쓰면 오류 발생함으로 주의!
💡 문제를 잘 읽는 습관을 기르자

import sys
input = sys.stdin.readline
K = int(input())
stack = []
for _ in range(K):
num = int(input())
if num == 0 and stack:
stack.pop()
else:
stack.append(num)
print(sum(stack))
- 위 문제는 stack을 이용하면 너무 쉬운 문제였다.
- 조건에 맞춰서 0이 나오면 가장 최근의 수를 지우는 것이기 떄문에 stack의 가장 윗부분을 pop()으로 드러내면 된다.
- 지금 문제를 읽으면서 생각해보니 "0"이라는 것이 들어온다는 것은 항상 stack이 채워져있다는 의미 임으로 코드의 "and stack"부분은 필요없는거 같다.
import sys
input = sys.stdin.readline
K = int(input())
stack = []
for _ in range(K):
num = int(input())
if num == 0:
stack.pop()
else:
stack.append(num)
print(sum(stack))
- 지금 문제를 읽으면서 생각해보니 "0"이라는 것이 들어온다는 것은 항상 stack이 채워져있다는 의미 임으로 코드의 "and stack"부분을 뺴주어도 정답이었다.