https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
문제
문제 풀이
- 전형적인 스택 문제이다. 0일 경우 pop을 해주고 나머지의 경우 push만 해주면 된다.
- 푼 방법
1. stack을 생성한다.
2. if else 구문을 사용하여 입력된 수가 0인 경우, stack.pop()을 해준다.
3. 입력된 수가 0 이외의 수을 경우, stack.push()을 해준다.
JAVA code
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.Stack;
public class baekjoon10773 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < N; i++) {
int S = Integer.parseInt(br.readLine());
if (S == 0)
stack.pop();
else
stack.push(S);
}
int result = 0;
for (int i = 0; i < stack.size();) {
result = result + stack.pop();
}
System.out.println(result);
}
}
'백준 문제풀이' 카테고리의 다른 글
[백준] JAVA로 백준 입력 받는 방법 (0) | 2022.09.14 |
---|---|
[백준] 10845번 큐 [JAVA] (0) | 2022.09.13 |
[백준] 9012번 괄호 [JAVA] (2) | 2022.09.13 |
[백준] 10828번 스택 [JAVA] (0) | 2022.09.13 |
[백준] 1874번 스택 수열 [JAVA] (2) | 2022.09.11 |