백준

[백준] 10773 Python

Crmal 2022. 10. 25. 23:43

백준 10773

다음 문제는 스택을 활용 해보고자 하는 문제입니다.

입출력은 다음과 같으며

처음 K라는 숫자를 입력받고 k만큼 재입력을 받습니다.

숫자가 0이 아닐경우 숫자만큼 장부에 등록된 금액이 됩니다. 0일경우 이전에 장부에 등록된 값이 잘못된 값이라는 뜻으로 지우게 됩니다.

이 부분은 FILO으로 스택을 적용하여 풀이를 해보았습니다.

import sys

k = int(sys.stdin.readline())

stack = []
for i in range(k):
  money = int(sys.stdin.readline());
  if(not money):
    stack.pop()
  else:
    stack.append(money)

print(sum(stack))

1. k를 입력 받습니다.

2. stack으로 사용할 리스트를 선언하여줍니다.

3. k번 반복하여 입력을 받고

4. not money -> money가 0이면 pop을 해주고

5. 0이 아니라면 추가하여줍니다

6. 마지막으로 스택에 들어간 값을 전부 더해주는 sum함수를 실행하여 출력하여줍니다.