본문 바로가기
알고리즘 문제/Java

[goormlevel/Java] Stack

by 현장 2026. 6. 3.

-Code

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

class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int n = Integer.parseInt(st.nextToken());
		int k = Integer.parseInt(st.nextToken());

		Deque<Integer> deq = new ArrayDeque<>();

		for (int i = 0; i < n; i++) {
		  st = new StringTokenizer(br.readLine());
			String comm = st.nextToken();
			
			if (comm.equals("push")) {
				// push인 경우
				int num = Integer.parseInt(st.nextToken());
				if (deq.size() == k) {
					// 덱의 크기가 k인 경우
					System.out.println("Overflow");
					continue;
				} 
				// 덱에 넣기
				deq.addLast(num);
			} else {
				// pop인 경우
				if (deq.isEmpty()) {
					// 덱이 비어있는 경우
					System.out.println("Underflow");
					continue;
				}
				// 맨 마지막 뽑아서 출력
				System.out.println(deq.pollLast());
			}
		}
		br.close();
	}
}

'알고리즘 문제 > Java' 카테고리의 다른 글

[goormlevel/Java] 0커플  (0) 2026.06.05
[goormlevel/Java] 뭉친 K  (0) 2026.06.04
[goormlevel/Java] 연속 점수  (0) 2026.06.02
[goormlevel/Java] 밀도 정렬  (0) 2026.06.01
[goormlevel/Java] Queue  (0) 2026.05.31