위와 같은 자료 구조 유형의 쉬운 문제는 자바 문서만 참조하더라도 쉽게 풀이가 가능하다.
문제를 읽어보면 최근에 적은 금액을 0이라는 값이 나왔을 때, 바로 지워줘야 하기 때문에 Stack 자료 구조로 문제를 풀이하면 되겠다는 감이 온다.
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
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());
Stack<Integer> stack = new Stack<>();
long result = 0;
while(K-- > 0){
int n = Integer.parseInt(br.readLine());
if(n == 0){
stack.pop();
continue;
}
stack.push(n);
}
br.close();
while(!stack.empty()){
Integer n = stack.pop();
result += n;
}
System.out.println(result);
}
}