메모
/*
잘못된 수를 부를 때마다 0 -> 가장 최근에 쓴 수 지우기
첫 번째 줄 : 정수 K
.
.
.
K개의 줄 : 정수가 1개씩
정수가 "0" 일 경우 : 가장 최근에 쓴 수 지우기
아닐 경우 : 해당 수 쓰기
받아 적은 모든 수의 합?
*/
import java.util.Stack;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Stack<Integer> stack = new Stack<Integer>();
int K = Integer.parseInt(br.readLine()); // 형 변환
// 스택 내 데이터 삭제 및 입력
for (int i = 0; i < K; i++) {
int number = Integer.parseInt(br.readLine()); // 정수 입력
if (number == 0) { // 0 이라면, 스택에 저장된 top 원소(마지막 데이터, 가장 위의 데이터)를 삭제
stack.pop();
} else { // 아니라면, 데이터 입력(넣기, 쌓기)
stack.push(number);
}
}
// 스택에 남은 수들의 합
int sum = 0;
for (int a : stack) {
sum += a;
}
System.out.println(sum);
}
}
BufferedReader
stack
stack.push(number);