-
백준 10828 - 스택 구현자료구조와 알고리즘/문제풀기 2023. 4. 4. 19:37
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception{ BufferedReader s = new BufferedReader(new InputStreamReader(System.in)); MSt ms = new MSt(); int input = Integer.valueOf(s.readLine()); String[] temp; int result=0; while(input-- > 0){ temp = s.readLine().split(" "); switch (temp[0]){ case "push": ms.push(Integer.valueOf(temp[1])); break; case "pop" : result=ms.pop(); System.out.println(result); break; case "size" : result=ms.size(); System.out.println(result); break; case "empty" : result=ms.empty(); System.out.println(result); break; case "top" : result=ms.top(); System.out.println(result); break; } } } } class MSt { private int[] arr; private int size=0; MSt(){ this(10); } MSt(int n){ this.arr = new int[n]; } public void push(int n){ if(size>=arr.length) ensureSize(); //arr.length-1까지만 통과 arr[size++] = n; } public int pop(){ if(empty()==1) return -1; int rint = arr[size-1]; // if(rint == 0) return -1; arr[size-1]=0; size--; return rint; } public int size(){ return this.size; } public int empty(){ if(size==0)return 1; return 0; } public int top(){ if(size ==0) return -1; return arr[size-1]; } private void ensureSize(){ int[] temp = new int[arr.length+6]; System.arraycopy(arr,0,temp,0,arr.length); arr = temp; } }
스택 자료구조를 구현하는 문제이다.
'자료구조와 알고리즘 > 문제풀기' 카테고리의 다른 글
백준 10845 - 큐 구현 (0) 2023.04.05 백준 1406 - 에디터 (0) 2023.04.05 백준 1874 - 스택수열 (0) 2023.04.04 백준 9012 - 괄호 (0) 2023.04.04 백준 9093 - 단어뒤집기 (0) 2023.04.04