[JAVA/백준] 스택: 제로

👀 문제

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

👊 도전

1. 설계

  1. 이전 숫자를 알아야하므로 메모리를 사용해 저장해야한다.
  2. 스택을 이용해 이전 값을 바로 불러올 수 있게 한다.

2. 구현 (성공 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Scanner;
import java.util.Stack;
/**
 * @author HEESOO
 *
 */
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input=new Scanner(System.in);
		int k=input.nextInt();
		int answer=0;
		int num;
		Stack<Integer> st=new Stack<>();
		
		for(int i=0;i<k;i++) {
			num=input.nextInt();
			if(num==0)
				answer-=st.pop();
			else {
				answer+=num;
				st.push(num);
			}				
		}
		
		System.out.println(answer);
	}
}

 

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. 스택을 이용한다
    • 0이 입력되면 이전 값을 빼야하므로 입력된 값들을 모두 저장해서 알고 있어야한다.
    • 스택을 사용하여 바로 이전에 넣은 값을 뺄 수 있도록 한다.

👏 해결 완료!