https://www.acmicpc.net/problem/10773
1. 아이디어
Stack 자료구조를 활용하면 간단하게 해결할 수 있다.
2. 문제풀이
ArrayDeque를 Stack으로 사용해서 구현했다.
항상 수를 지울 수 있음이 보장되어 있으므로 0이 아니면 Stack에 넣고 0이면 Stack에서 뺀 후 입력이 끝나면 Stack의 값을 전부 더하는 방식으로 구현했다.
3. 코드
import java.io.*;
import java.util.*;
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());
Deque<Integer> stack = new ArrayDeque<>();
for (int i = 0; i < K; i++) {
int N = Integer.parseInt(br.readLine());
if (N != 0) stack.push(N);
else stack.pop();
}
int sum = 0;
while (!stack.isEmpty()) {
sum += stack.pop();
}
System.out.println(sum);
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 1927번 - 최소힙 [Java] (0) | 2025.01.02 |
---|---|
[백준] 1676번 - 팩토리얼 0의 개수 [Java] (0) | 2025.01.02 |
[백준] 9610번 - 사분면 [Java] (0) | 2025.01.02 |
[백준] 5543번 - 상근날드 [Java] (0) | 2025.01.02 |
[백준] 2908번 - 상수 [Java] (0) | 2025.01.02 |