728x90
[슈도코드]
// push X : 정수 X를 스택에 넣는 연산
push (X) {
top ++
stack 에 정수 X 삽입
}
// pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력
// 스택에 들어있는 정수가 없는 경우에는 -1을 출력
pop() {
if (top == -1){ -1 출력}
else {
가장 위에 있는 정수 출력
top --
}
}
// size : 스택에 들어있는 정수의 개수를 출력
size() {
top + 1 출력
}
// empty : 스택이 비어있으면 1, 아니면 0을 출력
empty() {
if(top == -1){1 출력}
else {0 출력}
}
// top : 스택의 가장 위에 있는 정수를 출력
// 스택에 들어있는 정수가 없는 경우에 -1 출력
top() {
if(top == -1){-1 출력}
else {가장 위에 있는 정수 출력}
}
import java.util.Scanner;
public class Main{
public static int[] stack; // 스택 1차원 배열로 구현
public static int top;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int N = sc.nextInt();
stack = new int[N];
top = -1;
for(int i=0; i<N; i++){
String order = sc.next();
switch(order) {
case "push":
push(sc.nextInt());
break;
case "pop":
sb.append(pop()).append('\n');
break;
case "size":
sb.append(size()).append('\n');
break;
case "empty":
sb.append(empty()).append('\n');
break;
case "top":
sb.append(top()).append('\n');
break;
}
}
System.out.println(sb);
}
public static void push(int X){
top ++;
stack[top] = X;
}
public static int pop(){
if(top == -1){return top;}
else {
top --;
return stack[top + 1];
}
}
public static int size(){
return top + 1;
}
public static int empty(){
if(top == -1){
return 1;
} else {
return 0;
}
}
public static int top(){
if (top == -1){
return -1;
} else {
return stack[top];
}
}
} // Main
728x90
'백준 > 코드 플러스 (알고리즘 기초 - 1)' 카테고리의 다른 글
[백준] 200 - 자료구조 1 : 큐 (10845번 JAVA) (0) | 2023.01.03 |
---|---|
[백준] 200 - 자료구조 1 : 에디터 (!) (1406번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 스택 수열 (!) (1874번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 괄호 (9012번 JAVA) (0) | 2023.01.03 |
[백준] 200 - 자료구조 1 : 단어 뒤집기 (9093번 JAVA) (0) | 2023.01.03 |