[백준] 10773 제로

morecodeplease·2025년 1월 22일
0

백준

목록 보기
10/13
post-thumbnail

🌭 문제 설명

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

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

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

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


🍗 제한 사항

  • 없음

🎁 입출력 예시

  • 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)

  • 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.

  • 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.

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

😎 나의 풀이

stack = []

k = int(input())

for i in range(k):
  n = int(input())
  if(n == 0):
    stack.pop()
  else:
    stack.append(n)
    
print(sum(stack))
  1. stack 자료 구조를 사용하기 위해 선언
  2. k 만큼 반복 , 입력 받은 n을 정수로 바꾸고,
  3. n0 이면 스택에서 pop을 하고 아니면 스택에 append 해준다.
  4. sum 을 사용해서 stack에 있는 값들의 합을 출력

🧵 다른 풀이

다 비슷하기 때문에 생략

  • 스택을 이용해서 문제를 쉽게 풀었다.
profile
Everyday's a lesson

0개의 댓글

관련 채용 정보