[파이썬/python] 백준 10773번 : 제로 (🥈4)

https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

풀이

1. 처음 풀이

import sys
input = sys.stdin.readline

lst=[]
for i in range(int(input())):
    n=int(input())
    if n > 0 :
        lst.append(n)
    else:
        lst = lst[0:len(lst)-1]
print(sum(lst))

import sys
input = sys.stdin.readline을 써줘야만 시간초과가 나지 않는 별로 좋지 않은 풀이법..

 

2. 두 번째 풀이

import sys
input = sys.stdin.readline

lst=[]
for i in range(int(input())):
    n=int(input())
    if n > 0 :
        lst.append(n)
    else:
        del lst[-1]
print(sum(lst))

del을 이용해서 풀면 시간도 훨씬 줄어들고 간단해진다.

[-1]은 배열의 마지막 요소를 나타낸다.

comment