728x90
문제
https://www.acmicpc.net/problem/10773
돈 계산을 제대로 하지 못하는 폐급 재현이 때문에 고생하는 재민이를 도와주기 위한 문제
재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.
재민이는 이렇게 모든 수를 받아 적은 후, 그 수의 합을 알고 싶어 한다.
→ K개의 줄에 정수가 1개씩 주어지고, 정수가 '0'일 경우에는 가장 최근에 쓴 수를 지운다. '0'이 아닌 경우에는 해당 수를 보관한다.
------------------------------------------------------------------------------------------------------------------
풀이
import sys
K = int(sys.stdin.readline()) # 첫 번째 줄에 정수 K가 주어진다.
ST = [] # 빈 스택 생성
sum_v = 0 # 합을 구할 sum_v 변수 초기화
for _ in range(K): # K개의 줄에 정수가 1개씩 주어진다.
num = int(sys.stdin.readline()) # 값 입력받기
if ST and num == 0: # 스택에 값이 존재하고, 입력받은 값이 0이면
ST.pop() # 스택에서 pop()
else:
ST.append(num) # 아닌경우 스택에 append()
print(sum(ST)) # 스택의 합을 출력
728x90
'문제 풀이' 카테고리의 다른 글
[백준] 18258번: 큐 2 - Python(파이썬) (0) | 2024.02.25 |
---|---|
[백준] 9012번: 괄호 - Python(파이썬) (0) | 2024.02.25 |
[백준] 2644번: 촌수계산 - Python(파이썬) (0) | 2024.02.19 |
[백준] 9610번: 사분면 - Python(파이썬) (0) | 2024.02.18 |
[백준] 2606번: 바이러스 - Python(파이썬) (0) | 2024.02.17 |