반응형

 

📖 문제

 

📋 코드

import java.util.*;

public class Main {

	public static Stack<Integer> stack = new Stack<>();

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		StringBuffer sb = new StringBuffer();
		int N = sc.nextInt();

		for (int i = 0; i < N; i++) {
			String s = sc.next();

			switch (s) {
			case "push":
				int x = sc.nextInt();
				stack.push(x);
				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 int pop() {
		if (stack.isEmpty()) {
			return -1;
		} else {
			int tmp = stack.peek();
			stack.pop();
			return tmp;
		}
	}

	public static int size() {
		return stack.size();
	}

	public static int empty() {
		if (stack.isEmpty()) {
			return 1;
		} else {
			return 0;
		}
	}

	public static int top() {
		if (stack.isEmpty()) {
			return -1;
		} else {
			return stack.peek();
		}
	}
}

👨🏻‍💻 결과

 

📕 풀이 방법

명령 N 이 최대 10,000이고 명령마다 println으로 출력 시 시간 초과가 발생할 수 있으므로
StringBuilder를 사용해줍시다!

 

 

🔗 링크

https://www.acmicpc.net/problem/10828

반응형

+ Recent posts