CodingTest/Baekjoon

[baekjoon] 백준 10773번(파이썬): 제로

JunJangE 2021. 9. 16. 19:03

문제

 

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