[Python][백준 10773] 제로

Date:     Updated:

카테고리:

태그:

🔢 제로 문제 풀이

백준 10773번 제로 문제의 파이썬 풀이

📝 문제 설명

재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 이렇게 모든 수를 받아 적은 후 그 수들의 합을 구하는 프로그램을 작성하시오.

💡 풀이

이 문제는 스택의 개념을 활용하여 해결할 수 있다. 입력받은 수가 0이면 가장 최근에 입력받은 수를 제거하고, 0이 아니면 리스트에 추가한다. 마지막으로 남은 수들의 합을 구하면 된다.

🔍 코드 설명

  1. 정수 K를 입력받는다.
  2. K번 반복하면서:
    • 수를 입력받는다.
    • 입력받은 수가 0이면 가장 최근에 추가한 수를 제거한다.
    • 0이 아니면 리스트에 추가한다.
  3. 최종적으로 리스트에 남아있는 모든 수의 합을 출력한다.

✨ 참고

  • 파이썬의 리스트는 스택처럼 사용할 수 있다.
  • append()로 요소를 추가하고 pop()으로 제거한다.
  • sum() 함수로 리스트의 모든 요소의 합을 구할 수 있다.

🎯 주의사항

  • 입력되는 정수는 100,000보다 작거나 같다.

📝 코드

import sys

K = int(sys.stdin.readline().strip())
numbers = []

for _ in range(K):
    number = int(sys.stdin.readline().strip())
    if number == 0:
        if numbers:
            numbers.pop()
    else:
        numbers.append(number)

print(sum(numbers))

Python Coding Test 카테고리 내 다른 글 보러가기