본문 바로가기
알고리즘/백준

백준 10773 제로 (JAVA 자바 풀이)

by Renechoi 2022. 12. 23.

백준 10773 제로 (JAVA 자바 풀이)

 


 

 

📌 문제 

재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.
재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자!

 

 

⚔ 입력

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)

이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.

정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.

 

 

📣 출력

재민이가 최종적으로 적어 낸 수의 합을 출력한다. 최종적으로 적어낸 수의 합은 2^31 -1보다 작거나 같은 정수이다.

 

 

 

 


 

 

 

💎 문제 분석

 

 

간단한 스택 문제 

 

 

 

💡 코드 구현

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        int testCase = Integer.parseInt(bufferedReader.readLine());

        Stack<Integer> stack = new Stack<>();
        while (testCase-- > 0) {
            int number = Integer.parseInt(bufferedReader.readLine());

            if (number == 0) {
                stack.pop();
                continue;
            }
            stack.push(number);
        }
        System.out.println(stack.stream().mapToInt(i -> i).sum());
    }
}

 

 

 

 

 

 

 

반응형