코딩테스트/BOJ

[BOJ] 10772 제로 - JAVA

5월._. 2022. 2. 5.
728x90


1. 풀이

1) Stream사용

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

public class BOJ_10773_제로 {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int K = Integer.parseInt(in.readLine());

        Stack<Integer> stack = new Stack<>();
        while(K-->0){
            int num = Integer.parseInt(in.readLine());
            if(num==0) stack.pop();
            else stack.push(num);
        }

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

2) for문 사용

int sum = 0;
while(!stack.empty()) {
	sum += stack.pop();
}

2. 결과

메모리, 시간 두 측면에서 for문을 사용하는 방식이 더 나았다.

stack을 stream으로 변경하고, Integer를 int로 변경한 후 sum을 구하는 방식이라 코드는 한 줄이지만 많은 시간이 걸렸다.

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 17298 오큰수 - JAVA  (0) 2022.02.05
[BOJ] 1874 스택수열 - JAVA  (0) 2022.02.05
[BOJ] 4949 균형잡힌 세상 - JAVA  (0) 2022.02.05
[BOJ] 9012 괄호 - JAVA  (0) 2022.02.05
[BOJ] 10828 스택 - JAVA  (0) 2022.02.05

댓글