[Python][백준 10773] 제로
카테고리: Python Coding Test
태그: coding test 백준 10773 스택 자료구조 python
🔢 제로 문제 풀이
백준 10773번 제로 문제의 파이썬 풀이
📝 문제 설명
재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 이렇게 모든 수를 받아 적은 후 그 수들의 합을 구하는 프로그램을 작성하시오.
💡 풀이
이 문제는 스택의 개념을 활용하여 해결할 수 있다. 입력받은 수가 0이면 가장 최근에 입력받은 수를 제거하고, 0이 아니면 리스트에 추가한다. 마지막으로 남은 수들의 합을 구하면 된다.
🔍 코드 설명
- 정수 K를 입력받는다.
- K번 반복하면서:
- 수를 입력받는다.
- 입력받은 수가 0이면 가장 최근에 추가한 수를 제거한다.
- 0이 아니면 리스트에 추가한다.
- 최종적으로 리스트에 남아있는 모든 수의 합을 출력한다.
✨ 참고
- 파이썬의 리스트는 스택처럼 사용할 수 있다.
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))