공부 기록장

백준 10773. 제로 본문

코딩 테스트/백준 문제 풀이

백준 10773. 제로

빛나무 2023. 12. 31. 19:09

문제 설명

0을 외칠 경우 가장 최근에 쓴 수가 지워진다.

지워진 수를 제외한 모든 수를 받아 적은 후, 그 수의 합을 구해보자.

 

입력

첫 번째 줄에 정수 K가 주어진다.

이후 K개의 줄에 정수가 하나씩 주어지고, 정수는 0에서 1,000,000사이의 값을 가지며,

정수가 0인 경우에는 최근에 쓴 수를 지우고, 아닐 경우에 해당 수를 쓴다.

(정수가 0인 경우 지울 수 있는 수가 있음을 보장한다.)

 

출력

최종적으로 적어낸 수의 합을 출력

 

N = int(input())
num = []
for i in range(N):
    x = int(input())
    if x == 0:
        num.pop()
    else:
        num.append(x)

print(sum(num))

 

시간 제한이 1초인데, 입력으로 주어지는 N은 100,000(십만) 이하이므로

O(N)의 시간 복잡도로 해결 가능하다.

'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글

백준 1966. 프린터  (0) 2023.12.31
백준 1158. 요세푸스 문제  (0) 2023.12.31
백준 10866. 덱  (0) 2023.12.31
백준 10828. 스택  (0) 2023.12.31
백준 4673. 셀프 넘버  (0) 2023.12.31