Skip to content

Commit 976b9c4

Browse files
committed
[Silver IV] Title: 제로, Time: 296 ms, Memory: 23760 KB -BaekjoonHub
1 parent 51998e6 commit 976b9c4

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# [Silver IV] 제로 - 10773
2+
3+
[문제 링크](https://www.acmicpc.net/problem/10773)
4+
5+
### 성능 요약
6+
7+
메모리: 23760 KB, 시간: 296 ms
8+
9+
### 분류
10+
11+
자료 구조, 구현, 스택
12+
13+
### 제출 일자
14+
15+
2024년 3월 31일 22:38:25
16+
17+
### 문제 설명
18+
19+
<p>나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.</p>
20+
21+
<p>재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다.</p>
22+
23+
<p>재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.</p>
24+
25+
<p>재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자!</p>
26+
27+
### 입력
28+
29+
<p>첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)</p>
30+
31+
<p>이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.</p>
32+
33+
<p>정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.</p>
34+
35+
### 출력
36+
37+
<p>재민이가 최종적으로 적어 낸 수의 합을 출력한다. 최종적으로 적어낸 수의 합은 2<sup>31</sup>-1보다 작거나 같은 정수이다.</p>
38+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.io.*;
2+
import java.util.*;
3+
public class Main {
4+
public static void main(String[] args) throws IOException {
5+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
6+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
7+
Stack<Integer> stk = new Stack<>();
8+
br.lines()
9+
.takeWhile(l -> !l.isEmpty())
10+
.skip(1)
11+
.mapToInt(Integer::parseInt)
12+
.forEach(r -> {
13+
if (r == 0) {
14+
stk.pop();
15+
} else {
16+
stk.push(r);
17+
}
18+
});
19+
int sum = 0;
20+
for(Integer i:stk) {
21+
sum += i;
22+
}
23+
bw.write(Integer.toString(sum));
24+
bw.flush();
25+
bw.close();
26+
}
27+
}

0 commit comments

Comments
 (0)