Always Be Wise

스택 : 제로(백준 10773번) 본문

알고리즘/백준

스택 : 제로(백준 10773번)

bewisesh91 2021. 11. 17. 23:37
728x90

▶ 문제 : https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

##### 문제 #####
# 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.
# 재현이는 재민이를 도와서 돈을 관리하는 중인데, 
# 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다.
# 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.
# 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자!

##### 입력 #####
# 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)
# 이후 K개의 줄에 정수가 1개씩 주어진다. 
# 정수는 0에서 1,000,000 사이의 값을 가지며, 
# 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.
# 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.

##### 출력 #####
# 재민이가 최종적으로 적어 낸 수의 합을 출력한다. 
# 최종적으로 적어낸 수의 합은 231-1보다 작거나 같은 정수이다.

 

▶ 접근 방법

 

▶ 풀이 코드

import sys

K = int(input())

stack = []
for _ in range(K):
    order = int(sys.stdin.readline())
    if order == 0:
        stack.pop()
    else :
        stack.append(order)

print(sum(stack))

 

▶ 관련 링크

2021.11.17 - [알고리즘] - 스택(Stack)이란?

2021.11.17 - [알고리즘] - 스택 : 스택(백준 10828번)

2021.11.17 - [알고리즘] - 스택 : 괄호(백준 9012번)

2021.11.17 - [알고리즘] - 스택 : 막대기(백준 17608번)

2021.11.17 - [알고리즘] - 스택 : 탑(백준 2493번)

2021.11.17 - [알고리즘] - 스택 : 원 영역(백준 10000번)

2021.11.17 - [알고리즘] - 스택 : 괄호의 값(백준 2504번)

2021.11.17 - [알고리즘] - 스택 : 크게 만들기(2812번)

Comments