스택 사용하기
10828. 스택
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class BOJ_10828 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
String str = st.nextToken();
switch (str) {
case "push":
stack.push(Integer.parseInt(st.nextToken()));
break;
case "pop":
if(stack.isEmpty()) System.out.println("-1");
else System.out.println(stack.pop());
break;
case "size":
System.out.println(stack.size());
break;
case "empty":
if(stack.isEmpty()) System.out.println("1");
else System.out.println(0);
break;
case "top":
if(stack.isEmpty()) System.out.println("-1");
else System.out.println(stack.peek());
break;
}
}
}
}
10773. 제로
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class BOJ_10773 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for(int i=0; i<N; i++) {
int num = Integer.parseInt(br.readLine());
if(num == 0) {
stack.pop();
} else {
stack.push(num);
}
}
int size = stack.size(), sum = 0;
for(int i=0; i<size; i++) {
sum += stack.pop();
}
System.out.print(sum);
}
}
'CS > Baekjoon' 카테고리의 다른 글
[BOJ] 2667번: 단지번호붙이기 (Java) (0) | 2020.11.24 |
---|---|
[Algorithm] 백준 단계별로 풀어보기 - 단계 13. 그리디 알고리즘 (0) | 2019.08.03 |
[Algorithm] 백준 단계별로 풀어보기 - 단계 12. 동적 계획법1-(1) (0) | 2019.08.03 |
[Algorithm] 백준 단계별로 풀어보기 - 단계 11. 정렬 (0) | 2019.07.30 |
[Algorithm] 백준 단계별로 풀어보기 - 단계 10. 브루트 포스 (0) | 2019.07.30 |