https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
import java.util.*;
import java.io.*;
public class Main {
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 a = Integer.parseInt(br.readLine());
stack temp = new stack();
StringTokenizer st;
StringBuilder sb = new StringBuilder("");
for(int i=0; i<a; i++) {
st = new StringTokenizer(br.readLine());
String command =st.nextToken();
if(command.equals("push")) {
int num = Integer.parseInt(st.nextToken());
temp.push(num);
}
else if(command.equals("pop")){
sb.append(temp.pop()+"\n");
}
else if(command.equals("size")) {
sb.append(temp.size()+"\n");
}
else if(command.equals("empty")) {
sb.append(temp.empty()+"\n");
}
else {
sb.append(temp.top()+"\n");
}
}
bw.write(sb+"");
bw.close();
}
}
class stack{
int top = -1;
private int size = 0;
ArrayList<Integer> al = new ArrayList<>();
void push(int num) {
al.add(0,num);
size++;
}
int pop() {
if(size==0) return -1;
size--;
return al.remove(0);
}
int size() {
return size;
}
int empty() {
if(size==0) return 1;
else return 0;
}
int top() {
if(size==0) return top;
return al.get(0);
}
}
'백준' 카테고리의 다른 글
백준 덱 - 10866번 : 덱 (0) | 2022.03.03 |
---|---|
백준 큐 - 10845번 : 큐 (0) | 2022.03.03 |
백준 스택 - 9012번 : 괄호 (1) | 2022.03.03 |
백준 이분탐색 - 2805번 : 나무 자르기 (0) | 2022.03.02 |
백준 큐 - 2164번 : 카드2 (0) | 2022.03.02 |