https://www.acmicpc.net/problem/10828
/**
* 1. n개의 명령의 수가 들어오고,
*
* 2. stack을 구현하여 명령을 처리
*
* 3. pop이나 size나 empty, top은 해당하는 숫자를 출력
*
*/
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Integer> stack = new Stack<>();
int n = Integer.parseInt(br.readLine());
StringTokenizer st;
for(int i = 0; i < n; i ++){
st= new StringTokenizer(br.readLine());
String command = st.nextToken();
if(command.equals("push")){
int num = Integer.parseInt(st.nextToken());
stack.push(num);
}else if(command.equals("top")){
int num = (stack.isEmpty() == true) ? -1 : stack.peek();
bw.write(num + "\n");
}else if(command.equals("size")){
bw.write(stack.size() +"\n");
}else if(command.equals("pop")){
int num = (stack.isEmpty() == true) ? -1 : stack.pop();
bw.write(num + "\n");
}else{
int num = (stack.isEmpty() == true) ? 1 : 0;
bw.write(num + "\n");
}
}
bw.flush();
bw.close();
}
}
// stack에 데이터 추가
// stack.push(3);
// stack.push(6);
// stack의 가장 나중에 넣은 값을 제거하고 반환
// stack.pop();
// stack에 가장 나중에 넣은 값을 반환
// stack.peek();
// stack에 담긴 내용물의 개수 반환
// stack.size();
// stack 비어있는지 체크(true, false 반환)
// stack.isEmpty();
'Algorithm > 백준풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 백준 10845 큐 (JAVA코드) (0) | 2022.02.27 |
---|---|
[알고리즘 문제풀이] 백준 9012 괄호 (JAVA코드) (0) | 2022.02.27 |
[알고리즘 문제풀이] 백준 - N과M(2) / JAVA(자바) (0) | 2022.02.06 |
[알고리즘 문제풀이] 백준 1065 한수 / JAVA (0) | 2022.01.30 |
[알고리즘 문제풀이] 백준 4673 셀프 넘버 /JAVA (0) | 2022.01.30 |
댓글