[백준 10773번] 제로
[백준 10773번] 제로
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 31 32 33 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public class 백준_손수경_정답_10773 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.valueOf(br.readLine()); int sum = 0; Stack<Integer> nums = new Stack<Integer>(); for (int i = 0; i < n; i++) { int number = Integer.valueOf(br.readLine()); if (number == 0) { nums.pop(); } else { nums.push(number); } } for (int num : nums) { sum += num; } bw.write(sum + "\n"); bw.close(); } } | cs |
Stack 클래스
사전상의 정의로 쌓다 라는 의미로, 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료구조라고 할 수 있다.
- push(value) : 값을 넣는데 사용
- pop() : 스택된 값 제거
- clear() : 스택된 값 전체 제거
이 문제를 푸는데 Stack 클래스가 사용된 이유는 0이 나오면 그 전에 스택되어 있던 값을 pop() 메서드를 사용해서 제거할 수 있기 때문이다. 0이 나온 것이 아니라면 push(number) 을 사용해서 값을 추가해주면 된다.
댓글남기기