Yeonnnnny

[백준][10773] 제로 본문

코딩테스트

[백준][10773] 제로

yeonny_do 2024. 10. 1. 09:25

1. 문제 

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

 

 

2. 풀이

 

흐음 .. 일단 스택이 가장 먼저 떠올랐음. 스택은 후입선출(LIFO) 기법이 적용된 자료구조임. 0이라는 숫자가 들어오면 가장 최근 즉, top에 위치한 값을 제거하면됨. 마지막 숫자가 입력되고 확인이 끝나면 스택에 있는 모든 값들의 합을 출력하면 될 것이라고 생각.

  • 정수 K 입력
  • for문 (K번 반복) 
    • num입력
    • if num==0 : stack의 top 제거
    • else : stack에 num 삽입
  • stack에 존재하는 모든 값의 합 출력

 

3. 내가 짠 코드

 
K = int(input())
stack=[]

for i in range (K):
    num = int(input())  # 돈 입력
    if num==0:          # 잘못된 수 부름
        stack.pop()     # 가장 최근 값 제거
    else:
        stack.append(num) # 옳은 값 넣기

print(sum(stack))