본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 백준 10828번: 스택 JAVA

by 방구석개발자 2020. 12. 25.
반응형

 

import java.io.*;
import java.util.Arrays;

class MyStack{
	int []stack;
	int size;
	StringBuilder sb;
	
	MyStack(){
		stack=new int[100000];
		size=0;
		sb = new StringBuilder();
	}
	
	void sendMethod(String[] strArr){
		switch (strArr[0]) {
		case "push":
			push(strArr[1]);
			break;
		case "pop":
			pop();
			break;
		case "size":
			size();
			break;
		case "empty":
			empty();
			break;
		case "top":
			top();
			break;
		}
	}
	
	void push(String num){
		stack[size++]=Integer.parseInt(num);
	}
	
	void pop(){
		sb.append(size>0?stack[--size]:-1);
		sb.append("\n");
	}
	
	void size(){
		sb.append(size+"\n");
	}
	
	void empty(){
		sb.append(size>0?0:1);
		sb.append("\n");
	}
	void top(){
		sb.append(size>0?stack[size-1]:-1);
		sb.append("\n");
	}
	
	@Override
	public String toString() {
		return sb.toString();
	}
}

public class Main {
	
	public static void main(String[] args) throws Exception{
		int N=0;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		MyStack myStack=new MyStack();
		for(int i=0;i<N;i++){
			String[]strArr=br.readLine().split(" ");
			myStack.sendMethod(strArr);
		}

		System.out.println(myStack.toString());
	}
	public static void stackMethod(String [] strArr){
		
	}
}

 

스택을 이용하여 풀이 할 수 있었으나 문제의 의도가 스택을 직접 구현이므로 MyStack을 만들어 구현 하였습니다.

반응형

댓글