99클럽 코테 스터디 14일차 TIL + queue

수삼·2024년 11월 10일
0

코딩테스트

목록 보기
19/44

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));

        Queue<Integer> queue = new LinkedList<>();

        int cnt = Integer.parseInt(br.readLine());
        int last = 0;

        StringBuilder sb = new StringBuilder();

        while(cnt-- > 0) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            String order = st.nextToken();
            boolean isEmpty = queue.isEmpty();

            switch (order) {
                case "push":
                    last = Integer.parseInt(st.nextToken());
                    queue.offer(last);
                    break;
                case "pop":
                    if(isEmpty) {
                        sb.append("-1\n");
                    } else {
                        sb.append(queue.poll() + "\n");
                    }
                    break;
                case "size":
                    sb.append(queue.size() + "\n");
                    break;
                case "empty":
                    if(isEmpty) {
                        sb.append("1\n");
                    } else {
                        sb.append("0\n");
                    }
                    break;
                case "front":
                    if(isEmpty) {
                        sb.append("-1\n");
                    } else {
                        sb.append(queue.peek() + "\n");
                    }
                    break;
                case "back":
                    if(isEmpty) {
                        sb.append("-1\n");
                    } else {
                        sb.append(last + "\n");
                    }
                    break;
            }
        }

        bw.write(sb.toString());
        bw.flush();
        bw.close();
        br.close();
    }
}

함수로 빼서 배열에 구현하는 사람도 있는데 나는 있는 클래스를 활용했다.
코드는 stack 구현 내용과 거의 동일하다.

QUEUE

인터페이스이기 때문에 LinkedList로 구현해야한다
같은 동작을 하는데 return값으로 exception을 던지거나 null을 던지는 메소드로 나뉘어있다.

0개의 댓글