https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
재민이와 재현이의 역할을 잘 파악하면 된다.
재민 : 장부 관리
재현 : 잘못된 수를 외침 → 이로 인해 재민이는 가장 최근에 쓴 수를 지움
문제 해결 방법
재현이가 0을 외치면 스택 마지막 요소를 삭제한다.
0을 외치지 않으면 제대로 부른 것이니, 해당 숫자를 스택에 추가한다.
소스 코드
import sys
input = sys.stdin.readline
N = int(input())
stack = []
for _ in range(N):
number = int(input())
if number != 0:
stack.append(number)
else:
stack.pop()
print(sum(stack))
'PS > 백준' 카테고리의 다른 글
[백준] 3184번 양 (python) (1) | 2024.02.10 |
---|---|
[백준] 14940번 쉬운 최단거리 (python) (0) | 2024.01.26 |
[백준] 16953번 A → B (python) (0) | 2023.12.20 |
[백준] 4949번 균형잡힌 세상 (python) (0) | 2023.12.19 |
[백준] 9012번 괄호 (python) (1) | 2023.12.09 |