🔑알고리즘/baekjoon

백준 10773 : 제로 자바 문제 풀이 (스택 사용 문제)

pkyung 2022. 1. 2. 22:30
반응형

이 문제 또한 간단한 문제입니다. 

예제 2번을 설명한 그림입니다. 0이 나오면 stack에 있는 제일 최근 것을 pop() 하면 되겠다는 생각이 들죠.

그리고 나머지 스택에 들어 있는 걸 다 더해주면 되는데 그건 stack이 빌 때까지 pop()을 하면 됩니다.

시간 초과의 기억으로 게속 BufferedReader에 익숙해지려고 이 문제도 버퍼로 풀었어요.

import java.io.*;
import java.util.*;
public class Main{

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		Stack<Integer> s = new Stack<Integer>();
		int result = 0;
		int n = Integer.parseInt(br.readLine());
		for(int i=0;i<n;i++) {
			int integer = Integer.parseInt(br.readLine());
			if(integer!=0) {
				s.push(integer);
			}
			else {
				s.pop();
			}
		}
		while(!s.empty()) {
			result += s.pop();
		}
		bw.write(result+"");
		bw.flush();
	}

}
반응형