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]은 배열의 마지막 요소를 나타낸다.
| [파이썬/python] 프로그래머스 : 크키가 작은 부분 문자열(Lv.1) (0) | 2022.12.23 |
|---|---|
| [파이썬/python] 백준 5800번 : 성적통계 (🥈5) (2) | 2022.11.15 |
| [파이썬/python] 백준 11170번 : 0의 개수 (🥉1) (0) | 2022.11.14 |
| [파이썬/python] 백준 11721번 : 열 개씩 끊어 출력하기 (🥉3) (0) | 2022.11.10 |
| [파이썬/python] 백준 5176번 : 대회 자리 (🥉2) (0) | 2022.11.08 |