세상을 바꾸는 데이터

[백준 10773번] 제로 - 파이썬 본문

PS Study/BOJ(백준)

[백준 10773번] 제로 - 파이썬

Industriousness 2022. 2. 2. 14:38

 

문제 링크:

https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

 


풀이 과정:

이 문제는 0을 입력받으면 최근에 입력한 값을 삭제하는 과정이 필요하다.

리스트의 pop(-1)을 이용하면 간단하게 풀 수 있다. index -1은 맨 뒤에 있는 데이터를 가리킨다.

pop( ) 함수index를 인자로 받으며, 해당 index에 있는 값을 삭제해주는 역할을 한다.

 

풀이 코드:

# 10773번 제로

k = int(input())
# 장부 리스트 생성
num_list = [0]
ans = 0

# 정수를 차례대로 입력받기
for _ in range(k):
  num = int(input())
  # 정수가 0이 아니면 장부에 추가
  if num != 0:
    num_list.append(num)
  # 정수가 0이면 장부에서 최근 값 삭제
  else:
    num_list.pop(-1)

# 장부에 있는 숫자 모두 더하기
for i in range(len(num_list)):
  ans += num_list[i]

# 정답 출력
print(ans)

 

백준 10773번 제로

 

728x90
반응형
Comments