백준 단계별문제/스택/ 파이썬 백준 10773 제로
문제 : https://www.acmicpc.net/problem/10773
문제 풀이 방법
숫자를 앞에서 입력한대로 비교해서 처음 들어온 숫자가 0일 때랑 아닐때랑 먼저 처리
0이 아니면 그 숫자를 리스트에 append해줌
0이 나오면 빈 리스트일 경우 뺄 숫자가 없어서 오류 발생하므로 예외처리 해주고, 빈 리스트가 아니라면 최근 숫자를 pop 해줌
import sys
K = int(sys.stdin.readline())
stk = []
for k in range(K):
num = int(sys.stdin.readline())
if num == 0: # 입력 받은 숫자가 0일 경우
if len(stk) == 0: # 예외 처리를 안해주면 처음 입력 받은 숫자가 0일 경우 뺄 숫자가 없어서 index error 발생
try :
continue # 오류 발생하면 그냥 반복문 처음부터 진행
except :
IndexError
else:
stk.pop() # 빈 리스트가 아니라면 , 마지막 단어 pop해줌
else:
stk.append(num) # 입력 받은 숫자가 0이 아닐 경우 그냥 리스트에 추가해줌
print(sum(stk)) # 리스트 각 요소의 합 출력를 입력하세요
코드 설명은 주석으로 자세히 적어놨음!!
다른 분 코드를 몇개 찾아보긴 했는데 예외처리 안해주는게 대부분이였다..
난 뭐가문제였을까~ㅜ
Author And Source
이 문제에 관하여(백준 단계별문제/스택/ 파이썬 백준 10773 제로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddd8177/백준-단계별문제스택-파이썬-백준-10773-제로저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)