백준

[백준] 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;
    		}
    	}
	}
}

 

큐 자료구조를 그대로 구현하면 된다.

배열과 각 필드들을 적절히 활용해 메소드를 작성한다.