☕Language: Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
while(num-->0) {
int i = Integer.parseInt(br.readLine());
if(i!=0) {
stack.add(i);
} else {
stack.remove(stack.size()-1);
}
}
br.close();
int sum = 0;
for(int i=0; i<stack.size(); i++) {
sum += stack.get(i);
}
bw.write(sum+"");
bw.flush();
bw.close();
}
}
|
🤔 해설
1. if 조건문
- 0이 아닌 값이 입력될 때, stack remove 시, stack.size를 활용하여 가장 최근에 입력된 수부터 제거
(0이 입력될 경우, 지울 수 있는 수가 있다고 보장되어있음)
😮 이 외의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
while (num-- > 0) {
int i = Integer.parseInt(br.readLine());
if (i != 0) {
stack.push(i);
} else {
stack.pop();
}
}
br.close();
int sum = 0;
for (int i : stack) {
sum += i;
}
bw.write(sum + "");
bw.flush();
bw.close();
}
}
|
1. Stack 내장 메서드 활용: push(), pop()
2. 향상된 for 반복문
🔗 소스 코드
HJ0216/TIL/BOJ
📚 참고 자료
'Computer > Algorithm_Java' 카테고리의 다른 글
[BaekJoon] 2231번 분해합 문제풀이 (Success) (0) | 2023.08.06 |
---|---|
[BaekJoon] 9012번 괄호 문제풀이 (Success) (0) | 2023.08.05 |
[BaekJoon] 11650번 좌표 정렬하기 문제풀이 (Success) (0) | 2023.08.04 |
[BaekJoon] 24313번 알고리즘 수업 - 점근적 표기 1 문제풀이 (Success) (0) | 2023.08.03 |
[BaekJoon] 2581번 소수 문제풀이 (Success) (0) | 2023.08.01 |