https://www.acmicpc.net/problem/10773
문제
- 첫째 줄에 정수 K(1 <= K <= 100000) 입력.
- 둘째 줄부터 K개의 줄에 정수가 1개씩 주어짐. (0 <= 정수 <=1000000).
- 입력된 정수가 0일 경우 가장 최근에 입력한 수를 지움.
- 입력된 정수가 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 sum = 0;
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){
sum -= stack.pop();
}
else{
stack.add(n);
sum +=n;
}
}
br.close();
System.out.println(sum);
}
}
'백준 문제 풀이 > 백준 (JAVA)' 카테고리의 다른 글
JAVA 백준 4949 균형잡힌 세상 (스택) (0) | 2024.07.02 |
---|---|
JAVA 백준 9012 괄호 (스택) (0) | 2024.07.02 |
JAVA 백준 25192 인사성 밝은 곰곰이 (심화 2) (0) | 2024.07.02 |
JAVA 백준 1037 약수 (심화 2) (0) | 2024.07.02 |
JAVA 백준 28279 덱 2 (덱) (0) | 2024.07.02 |