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 |
댓글