👀 문제
https://www.acmicpc.net/problem/10773
👊 도전
1. 설계
- 이전 숫자를 알아야하므로 메모리를 사용해 저장해야한다.
- 스택을 이용해 이전 값을 바로 불러올 수 있게 한다.
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. 설명
- 스택을 이용한다
- 0이 입력되면 이전 값을 빼야하므로 입력된 값들을 모두 저장해서 알고 있어야한다.
- 스택을 사용하여 바로 이전에 넣은 값을 뺄 수 있도록 한다.