백준 | 10828 : 스택 (Java)

usuyn·2021년 9월 14일

알고리즘

목록 보기
9/12

문제에 대한 자세한 정보는 백준 | 10828번 : 스택에서 확인할 수 있다.


풀이

  1. Integer type Stack을 생성한다.
  2. 반복문을 사용해 주어진 명령을 if, else if로 확인하며 처리한다.

소스코드

import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken());
		Stack<Integer> stack = new Stack<>();

		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine());
			String cmd = st.nextToken();

			if (cmd.equals("push")) {
				stack.add(Integer.parseInt(st.nextToken()));
			} else if (cmd.equals("pop")) {
				if (stack.empty())
					bw.write("-1\n");
				else
					bw.write(String.valueOf(stack.pop()) + "\n");
			} else if (cmd.equals("size")) {
				bw.write(String.valueOf(stack.size()) + "\n");
			} else if (cmd.equals("empty")) {
				if (stack.empty())
					bw.write("1\n");
				else
					bw.write("0\n");
			} else if (cmd.equals("top")) {
				if (stack.empty())
					bw.write("-1\n");
				else
					bw.write(String.valueOf(stack.peek()) + "\n");
			}
		}

		br.close();
		bw.close();
	}
}

메모리, 시간

메모리 : 15592KB
시간 : 144ms


풀이 후

배열을 사용해도 풀이가 가능한 문제였다. 주어진 명령에 따라서 잘 처리하기만 하면 돼서 어려운 문제는 아니었다.

profile
https://select-dev-from.tistory.com 로 이사 중

0개의 댓글