ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 10845 큐
    PS 2023. 5. 2. 02:38

     

     

    풀이 :

    int형 배열로 큐의 기능을 하는 CustomQueue 클래스를 구현하여 해당 문제를 풀이하였습니다.

     

     

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class Main {
        static class CustomQueue {
            int[] queue;
            int begin;
            int end;
    
            public CustomQueue(int n){
                this.queue = new int[n];
                this.begin = 0;
                this.end = 0;
            }
    
            public void push(int n){
                end++;
                queue[end-1] = n;
            }
    
            public int pop(){
                if((end - begin) == 0){
                    return -1;
                }
                int i = queue[begin];
                begin++;
                return i;
            }
    
            public int size(){
                return end - begin;
            }
    
            public int empty(){
                if((end - begin) == 0){
                    return 1;
                }
                return 0;
            }
    
            public int front(){
                if((end - begin) == 0)
                    return -1;
                return queue[begin];
            }
    
            public int back(){
                if((end - begin) == 0)
                    return -1;
                return queue[end-1];
            }
        }
    
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int n = Integer.parseInt(br.readLine());
            StringTokenizer st;
            CustomQueue queue = new CustomQueue(n);
            StringBuilder sb = new StringBuilder();
    
            for(int i = 0; i < n; i++){
                st = new StringTokenizer(br.readLine());
                String str = st.nextToken();
                switch (str){
                    case "push":
                        int data = Integer.parseInt(st.nextToken());
                        queue.push(data);
                        break;
                    case "pop":
                        int pop = queue.pop();
                        sb.append(pop).append("\n");
                        break;
                    case "size":
                        int size = queue.size();
                        sb.append(size).append("\n");
                        break;
                    case "empty":
                        int empty = queue.empty();
                        sb.append(empty).append("\n");
                        break;
                    case "front":
                        int front = queue.front();
                        sb.append(front).append("\n");
                        break;
                    case "back":
                        int back = queue.back();
                        sb.append(back).append("\n");
                        break;
                    default:
                        break;
                }
            }
            System.out.print(sb);
        }
    }

     

     

    'PS' 카테고리의 다른 글

    Java 10773 제로  (0) 2023.05.02
    Java 2164 카드2  (0) 2023.05.02
    Java 1406 에디터  (0) 2023.05.02
    Java 1874 스택 수열  (0) 2023.05.01
    Java 9093 단어 뒤집기  (0) 2023.05.01
Designed by Tistory.