Competition/Baekjoon

[백준] 10828번 자바 스택 기초

bisi 2020. 3. 11. 22:34
문제 출처 

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

 

10828번: 스택

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

www.acmicpc.net

 

 

 

접근 방식 및 풀이

- 스택을 활용하는 기초 문제이다. 

- 스택 선언 후 명령어에 맞게 코딩해주면 된다.

 

 

 

소스 코드 
import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Stack<Integer> stack = new Stack<Integer>();
        String str;
        for (int i = 0; i <n ; i++) {
            str = sc.next();
            System.out.println("--------- " +i + " :: "+str);
            if(str.startsWith("push")){
                stack.push(sc.nextInt());
            }else if(str.equals("pop")){
                if(stack.size()<1){
                    System.out.println(-1);
                }else {
                    int a = stack.pop();
                    System.out.println(a);
                }

            }else if(str.equals("size")){
                System.out.println(stack.size());

            }else if(str.equals("empty")){
                if(stack.isEmpty()){
                    System.out.println(1);
                }else {
                    System.out.println(0);
                }
            }else if(str.equals("top")){
                if(stack.size()<1){
                    System.out.println(-1);
                }else{
                    System.out.println(stack.peek());
                }
            }
        }
    }

}

 

 

 

 

결과