Old/Algorithms

[JAVA] 백준 10828번: 스택

유뱅유뱅뱅 2020. 7. 8. 21:29

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

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �

www.acmicpc.net

입력으로 주어지는 명령을 처리하는 프로그램을 작성하는 문제임

Stack 라이브러리를 이용하여 구현하였음 

import java.util.*;

public class P10828 {
	
	public static void main(String[] args) {
		
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Stack<Integer> stack = new Stack<Integer>();
        
        String cmd;
        for(int i=0; i<n; i++)
        {
        	cmd = sc.next();
        	if(cmd.equals("push"))
        	{
        		int num = Integer.parseInt(sc.next());
        		stack.push(num);
        	}
        	else if(cmd.equals("pop"))
        	{
        		if(stack.empty())
        			System.out.println("-1");
        		else
        			System.out.println(stack.pop());
        	}
        	else if(cmd.equals("size"))
        	{
        		System.out.println(stack.size());
        	}
        	else if(cmd.equals("empty"))
        	{
        		if(stack.empty())
        			System.out.println("1");
        		else
        			System.out.println("0");
        	}
        	else if(cmd.equals("top"))
        	{
        		if(stack.empty())
        			System.out.println("-1");
        		else
        			System.out.println(stack.peek());
        	}
        }

	}

}