Java/Algorithm

[Java-Algorithm] 백준 10773 풀이 (스택)

Jeong Jeon
반응형

1). 문제 :

https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

 

2). 풀이 : 

Stack 사용법 문제이다.

Scanner에서 BufferedReader로만 변경해서사용

public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int count = Integer.parseInt(br.readLine());
		Stack<Integer> stack = new Stack<Integer>();

		for (int i = 0; i < count; i++) {
			int num = Integer.parseInt(br.readLine());

			if(num == 0) { stack.pop();
			}else {		   stack.push(num);}

		}
		br.close();

		int result = 0;
			for (Integer i : stack) {
				result += i;
			}

		System.out.println(result);
	}
반응형