문제
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
알고리즘
- 정수 개수만큼 반복하여 쓴 돈의 수를 입력받는다.
- 잘못된 수를 불렀다면 스택에서 팝해준다.
- 정확한 수를 불렀다면 스택에 쓴돈의 수를 추가한다.
- 스택의 합을 출력한다.
코드
import sys
k = int(sys.stdin.readline())
stack = []
# 정수 개수만큼 반복한다.
for i in range(k):
# 쓴 돈의 수를 입력 받는다.
num = int(sys.stdin.readline())
# 잘못된 수를 불렀다면 스택에서 팝해준다.
if num == 0:
stack.pop()
# 정확한 수를 불렀다면 스택에 쓴 돈의 수를 추가한다.
else:
stack.append(num)
# 스택의 합을 출력한다.
print(sum(stack))
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 11866번(파이썬): 요세푸스 문제 0 (0) | 2021.09.18 |
---|---|
[baekjoon] 백준 1966번(파이썬): 프린터 큐 (0) | 2021.09.17 |
[baekjoon] 백준 1918번(파이썬): 후위 표기식 (0) | 2021.09.16 |
[baekjoon] 백준 11656번(파이썬): 접미사 배열 (0) | 2021.09.14 |
[baekjoon] 백준 10824번(파이썬): 네 수 (0) | 2021.09.14 |