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을 실행하고 이외의 다른 값이 입력되면 새로운 리스트에 값을 추가한다.
'Koala - 7기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 2729 이진수 덧셈 (1) | 2022.08.07 |
---|---|
[백준/Python] 14915번 회문 (2) | 2022.08.03 |
[백준/python] 11068번 회문인 수 (1) | 2022.07.31 |
[백준/Python] 17502 클레어와 팰린드롬 (1) | 2022.07.31 |
[백준/python] 14582 오늘도 졌다 (1) | 2022.07.31 |