본문 바로가기

programming/algorithm

[algorithm] 백준 10773 - 제로

[algorithm] 백준 10773 - 제로

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준 10773번 문제 - 제로 의 풀이를 살펴보도록 하겠습니다.

 

풀이에 사용한 언어는 Python3 입니다.

 

문제 해석과 풀이 다 함께 살펴보시죠.

 

algorithm
알고리즘


백준 BAEKJOON 10773

 

백준 10773번 제로 문제 보러가기

 

반응형

 

문제 해석

 

문제에서 주어지는 숫자 중에 0이 나올 때 마다 바로 직전에 기입했던 수를 제거해야하는 상황이다.

최종적으로 모든 수가 입력된 다음 총합을 출력하면 문제 해결.

파이썬으로 풀이할 경우 리스트를 사용해 간단히 해결이 가능할 것으로 보입니다.

 

풀이

 

# 10773 제로

import sys

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

num_list = []

for _ in range(n):
    x = int(sys.stdin.readline())
    if x != 0:
        num_list.append(x)
    else:
        del(num_list[len(num_list)-1])

print(sum(num_list))

 

풀이 해석 및 팁

 

우선 한가지 주의해야할 점은 input()을 사용해서 입력값을 받아온다면 시간초과를 받기 때문에

sys.stdin.readline()을 사용해 입력값들을 받습니다.

그리고 받아온 값을 검사해서 0일 경우에만 가장 최근에 리스트에 추가된 요소를 제거해주고

그렇지 않을 경우에는 리스트에 계속해서 요소를 추가해주면 됩니다.

for 반복문이 종료되면 리스트에 존재하는 모든 수의 합을 출력해서 문제를 해결합니다.

저는 del()을 사용해서 리스트의 제일 최근 요소를 제거해주었지만 리스트의 매서드인 pop()을 사용해서

제거하는 방법을 사용해도 문제를 해결할 수 있습니다.

여기까지 백준 10773번 제로 문제 풀이였습니다.


이번 문제의 정답률은 67% 정도입니다.

 

모두들 큰 어려움 없이 문제를 해결하셨을 거라 생각됩니다.

 

궁금하신 점은 댓글로 남겨주시기 바랍니다.

 

감사합니다.

반응형