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

[알고리즘/백준] 10773 제로(자바, 스택)

by jeonghaemin 2021. 9. 30.
728x90

문제

https://www.acmicpc.net/problem/10773

풀이

스택을 사용하여 0이면 스택에서 꺼내고, 0이 아니면 스택에 넣는다.
모든 수를 받아 적은 후 스택에 남아있는 수의 합을 구한다.

import java.io.BufferedReader;
import java.io.IOException;
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<>();

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

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

        int sum = stack.stream().mapToInt(i -> i).sum();
        System.out.println(sum);
    }
}

댓글