문제 내용을 보면 입력으로 수를 계속 받게 되는데, 여기서 0을 받으면 이전에 받은 내용을 제외해주고, 모든 수를 받고 나면 남은 제외하고 남은 수를 더해준 뒤 출력해주면 끝이다
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < count; i++) {
int input = Integer.parseInt(br.readLine());
if (input == 0) {
stack.pop();
} else {
stack.push(input);
}
}
System.out.println(stack.stream().mapToInt(Integer::intValue).sum());
}
}
문제를 풀어보자면 입력받은 값을 Stack에 계속 넣어주되, 0이 들어오면 Stack에 이전에 들어간 값을 pop() 메소드로 빼 주고, 모든 입력을 받고 나면, Stack에 들어있는 값을 모두 더해 출력해주면 끝이다.
Leave a Reply