728x90
문제
https://www.acmicpc.net/problem/10773
접근 방법
- 재현이는 재민이가 잘못된 수를 외칠때마다 0을 외쳐서 가장 최근에 쓴 수를 지우는 문제입니다.
- 따라서 스택에 넣고 0을 외칠때마다 스택에서 pop하여 없애줍니다.
- 또한 스택에 쌓여있는 것들을 누적하여 sum값을 구하면 됩니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
private static StringBuilder sb;
private static BufferedReader br;
private static StringTokenizer st;
private static int N;
private static Stack<Integer> stack = new Stack<>();
private static int sum = 0;
//입력
public static void input() throws Exception {
br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
for(int i = 0 ; i < N ; i++){
int input = Integer.parseInt(br.readLine());
stackProcess(input);
}
process();
}
//스택 쌓기 실행
public static void stackProcess(int input) {
if(input==0){
stack.pop();
return;
}
stack.push(input);
}
//출력
public static void process(){
while (!stack.isEmpty()){
sum+=stack.pop();
}
System.out.println(sum);
}
public static void main(String[] args) throws Exception {
input();
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[Java] 백준 10989번 : 수 정렬하기 3 (0) | 2024.05.09 |
---|---|
[Java] 백준 10816번 : 숫자 카드 2 (0) | 2024.05.07 |
[Java] 백준 10814번 : 나이순 정렬 (0) | 2024.05.07 |
[Java] 백준 9012번 : 괄호 (0) | 2024.05.06 |
[Java] 백준 7568번 : 덩치 (0) | 2024.05.06 |