백준 - 10828번 - 스택

이상훈·2023년 4월 14일
0

10828번

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {

		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		int num = Integer.parseInt(bf.readLine());

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

		for (int i = 0; i<num; i++) {
			StringTokenizer st = new StringTokenizer(bf.readLine(), " ");

			String A = st.nextToken();
			if (A.equals("push")) {
				int B = Integer.parseInt(st.nextToken());
				stack.push(B);
			}

			if (A.equals("top")) {
				if (stack.isEmpty()) {
					System.out.println("-1");
				} else {
					System.out.println(stack.peek());
				}
			}

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

			if (A.equals("pop")) {
				if (stack.isEmpty()) {
					System.out.println("-1");
				} else {
					System.out.println(stack.pop());
				}
			}

			if (A.equals("empty")) {
				if (stack.isEmpty()) {
					System.out.println("1");
				} else {
					System.out.println("0");
				}
			}

		}
	}
}

풀이


스택을 사용하는 방법을 배우는 문제였다.

Stack<Integer> stack = new Stack<>(); // stack 선언
stack.push(1);     // stack에 값 1 추가
stack.pop();       // stack에 값 제거
stack.clear();     // stack의 전체 값 제거 (초기화)
stack.peek();     // stack의 가장 상단의 값 출력
stack.size();      // stack의 크기 출력 : 2
stack.empty();     // stack이 비어있는제 check (비어있다면 true)
stack.contains(1) // stack에 1이 있는지 check (있다면 true)

0개의 댓글