BOJ10773 - 제로

CYSSSSSSSSS·2023년 7월 24일

알고리즘

목록 보기
81/83

문제10773

문제

  • 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.

  • 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다.

  • 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.

  • 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자!

해결

  • 스택을 이용해서 저장을 하면서 0 이 나올떄마다 마지막 수를 pop 시키면 쉬운 문제이다.
  • 스택은 FILO 이기 떄문에 가장 먼저들어간 수는 먼저 나오지 않는 구조이다.
k = int(input())
stack = []

for _ in range(k):
    num = int(input())

    if num == 0 and len(stack) > 0:
        stack.pop()

    else:
        stack.append(num)



print(sum(stack))
profile
개발자 되고 싶어요

0개의 댓글