[알고리즘]/백준

백준 10845 자바 - 큐

broship 2021. 6. 16. 22:11

문제


 

 

 

문제해결


import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class B10845 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Queue<Integer> q = new LinkedList<>();
        int n = sc.nextInt();

        StringBuilder result = new StringBuilder();
        int num = 0;
        for (int i = 0; i < n; i++) {
            String command = sc.next();
            switch (command){
                case "push":
                    num = sc.nextInt();
                    q.offer(num);
                    break;
                case "pop":
                    result.append(q.isEmpty()?"-1\n":q.poll()+"\n");
                    break;
                case "size":
                    result.append(q.size()+"\n");
                    break;
                case "empty":
                    result.append(q.isEmpty()?"1\n":"0\n");
                    break;
                case "front":
                    result.append(q.isEmpty()?"-1\n":q.peek()+"\n");
                    break;
                case "back":
                    result.append(q.isEmpty()?"-1\n":num+"\n");
                    break;
            }
        }
        System.out.println(result);
    }
}

- 문제는 큐를 직접 구현하라는 뜻인거 같지만.. 그냥 큐를 가져다 사용하였다

- poll 메소드의 경우 꺼낼 값이 없으면 null을 반환하므로 isempty 체크를 해줘야 한다

- back의 경우 queue에서는 딱히 구현하고 있는 메소드가 없다 어차피 꺼낼 값이 없으면 -1을 출력하기에 마지막으로 push 받은 num을 전역변수로 설정해서 가져다 출력하는 방법을 사용하였다. 

'[알고리즘] > 백준' 카테고리의 다른 글

백준 10866 자바 - 덱  (0) 2021.06.18
백준 1158 자바 - 요세푸스 문제  (0) 2021.06.17
백준 1406 자바 - 에디터  (0) 2021.06.15
백준 1874 자바 - 스택 수열  (0) 2021.06.14
백준 9012 자바 - 괄호  (0) 2021.06.13