Koala - 7기/기초 알고리즘 스터디

[백준/python] 10773번 제로

fanatel 2022. 8. 1. 01:36

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

 

10773번: 제로

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

www.acmicpc.net

문제분석

0을 입력할 경우 스택에서 하나씩 값을 지운다. 

소스코드

k = int(input())
money = list(int(input()) for _ in range(k))
money_list = [0]
for i in range(k):
    if money[i] == 0:
        money_list.pop()
    else:
        money_list.append(money[i])
sum = 0
for i in range(len(money_list)):
    sum += money_list[i]
print(sum)

 

해설

입력받을 테스트 케이스를 정수로 입력받은 뒤, 리스트에 값들을 하나씩 저장한다.

반복문을 이용해 테스트 케이스 개수만큼 반복한 뒤, 0이 입력된 경우 pop을 실행하고 이외의 다른 값이 입력되면 새로운 리스트에 값을 추가한다.