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);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[알고리즘/백준] 10816 숫자 카드 2(자바, Map) (0) | 2021.09.30 |
---|---|
[알고리즘/백준] 10814 나이순 정렬(자바) (0) | 2021.09.30 |
[알고리즘/백준] 10250 ACM 호텔(자바) (0) | 2021.09.30 |
[알고리즘/백준] 9012 괄호(자바, 스택) (0) | 2021.09.30 |
[알고리즘/백준] 7568 덩치(자바) (0) | 2021.09.29 |
댓글