문제
문제해결
import java.util.Scanner;
public class B10828 {
public static int[] stack;
public static int size = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();//출력에 사용될것
int n = sc.nextInt();
stack = new int[n];
for (int i = 0; i < n; i++) {
String str = sc.next();
switch (str){
case "push":
push(sc.nextInt());//push일 경우 한번 더 입력받는다
break;
case "pop":
sb.append(pop()).append('\n');//pop한후 출력
break;
case "size":
sb.append(size()).append('\n');//size 출력
break;
case "empty":
sb.append(empty()).append('\n');//empty 출력
break;
case "top":
sb.append(top()).append('\n');//top 출력
break;
}
}
System.out.println(sb);
}
public static void push(int item){
stack[size] = item; //stack 맨 위에 값 추가
size++;
}
public static int pop(){
if(size==0) return -1; //꺼낼게 없을때
//꺼낼게 있을 때 값 하나 꺼낸 후 stack에서 삭제
int res = stack[size-1];
stack[size-1] = 0;
size--;
return res;
}
public static int size(){
return size;
}
public static int empty(){
if (size==0) return 1;
return 0;
}
public static int top(){
if(size==0) return -1; //꺼낼게 없을때
return stack[size-1]; //맨 위에꺼 꺼냄
}
}
- 스택을 구현만 할 줄 알면 쉬운 문제였다...
출처 https://st-lab.tistory.com/175
'[알고리즘] > 백준' 카테고리의 다른 글
백준 1874 자바 - 스택 수열 (0) | 2021.06.14 |
---|---|
백준 9012 자바 - 괄호 (0) | 2021.06.13 |
자바 - 구현 - 백준 9093 단어 뒤집기 (0) | 2021.06.12 |
자바 - 구현 - 백준 1783 병든 나이트 (0) | 2021.05.26 |
자바 - 구현 - 백준 6986 절사평균 (0) | 2021.05.24 |