Hayden's Archive

[알고리즘] 백준 - 10828번 : 스택 본문

Algorithm

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

_hayden 2020. 7. 7. 22:59

알고리즘 문제 출처 : 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) {
		Stack<Integer> stack = new Stack<>();
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		for(int i=0; i<num; i++) {
			String cmd = sc.next();
			if(cmd.equals("push")) {
				int n = sc.nextInt();
				stack.push(n);
			}//push
			else if(cmd.equals("pop")) {
				if(stack.isEmpty()) {
					System.out.println(-1);
				}else {
					System.out.println(stack.pop());
				}
			}//pop
			else if(cmd.equals("size")) {
				System.out.println(stack.size());
			}//size
			else if(cmd.equals("empty")) {
				if(stack.isEmpty()) {
					System.out.println(1);
				}else {
					System.out.println(0);
				}
			}//empty
			else if(cmd.equals("top")) {
				if(stack.isEmpty()) {
					System.out.println(-1);
				}else {
					System.out.println(stack.lastElement());
				}
			}//top
		}//for문
	}
}