제로

문제 풀러가기

10773

코드

import java.util.*;
import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int k = Integer.parseInt(br.readLine());
    int sum = 0;

    Stack<Integer> stack = new Stack<Integer>();

    for(int i = 0; i < k; i++) {
      int n = Integer.parseInt(br.readLine());

      if(n != 0) {
        stack.push(n);
      } else {
        if(!stack.isEmpty()) {
          stack.pop();
        }
      }
    }

    while(!stack.isEmpty()) {
      sum += stack.pop();
    }

    System.out.println(sum);
  }
}

설명

스택을 활용하면 쉬운 문제이다. 0이 들어오면 top을 제거하고 그 외의 수는 전부 쌓은 다음 마지막에 하나씩 꺼내서 다 합하면 된다.