백준
[백준] 10828번 : 스택 - Java
주니5947
2025. 1. 19. 23:01
https://www.acmicpc.net/problem/10828
- 문제
- 풀이
- 스택 자료구조를 그대로 구현하면 된다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static int stack[];
static int size = 0;
static void push(int val) {
stack[size] = val;
size++;
}
static void pop() {
if (size == 0)
System.out.println(-1);
else {
int tmp = stack[size-1];
stack[size - 1] = 0;
size--;
System.out.println(tmp);
}
}
static void size() {
System.out.println(size);
}
static void empty() {
if (size == 0)
System.out.println(1);
else
System.out.println(0);
}
static void top() {
if (size == 0)
System.out.println(-1);
else
System.out.println(stack[size-1]);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
stack = new int [N];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
String str = st.nextToken();
switch(str) {
case "push":
push(Integer.parseInt(st.nextToken()));
break;
case "pop":
pop();
break;
case "size":
size();
break;
case "empty":
empty();
break;
case "top":
top();
break;
}
}
}
}
큐 자료구조를 그대로 구현하면 된다.
배열과 각 필드들을 적절히 활용해 메소드를 작성한다.