https://www.acmicpc.net/problem/10773
arr = []
for _ in range(int(input())):
i = int(input()) # 정수 입력
if i != 0: # 0이 아닐 경우
arr.append(i) # arr에 추가
elif i == 0 and arr: # 0이고 arr에 수가 있을 경우
arr.pop() # pop
print(sum(arr))
쉽다.
근데 시간이 엄청 오래 걸렸다(4060ms).
import sys
input = sys.stdin.readline
arr = []
for _ in range(int(input())):
i = int(input())
if i != 0:
arr.append(i)
elif i == 0 and arr:
arr.pop()
print(sum(arr))
풀이 1에서 입력만 sys.stdin.readline
으로 바꾸어주었다.
훨씬 빨라졌다. 이렇게 속도 차이가 큰 줄 몰랐다.
다른 사람들의 풀이를 찾아보았는데
" 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다. "
라는 지문이 있으므로, 아래와 같이 elif 대신 else를 써줘도 되겠다.
import sys
input = sys.stdin.readline
arr = []
for _ in range(int(input())):
i = int(input())
if i != 0:
arr.append(i)
else:
arr.pop()
print(sum(arr))