# 큐: 삭제(dequeue) 구현 ## 문제 주어진 뼈대코드에 `dequeue()` 메소드를 구현하고, 그 결과를 출력 예와 비교하시오. ## 동작흐름 <div class="embed-responsive embed-responsive-16by9"> <iframe src="https://www.youtube.com/embed/jjtAA2J1Ik0" frameborder="0" allowfullscreen></iframe> </div> ## 출력 예 ``` --------------- 1 2 3 4 5 --------------- [0][1][2][3][4] front: [0], rear: [4], isEmpty?: false, isFull?: true 1 2 3 4 5 --------------- ø ø ø ø ø --------------- [0][1][2][3][4] front: [5], rear: [4], isEmpty?: true, isFull?: false ``` ## 뼈대코드 ``` public class MyQueueTest { public static void main(String[] args) { MyQueue queue = new MyQueue(); int data = 1; while (!queue.isFull()) { queue.enqueue(data++); } System.out.println(queue); while (!queue.isEmpty()) { System.out.println(queue.dequeue()); } System.out.println(queue); } } class MyQueue { private int[] elements; private int capacity; private int front; // 꺼내올 요소의 인덱스 private int rear; // 마지막 추가 요소의 인덱스 private int size; // 요소 개수 public MyQueue() { this.elements = new int[5]; this.capacity = 5; this.front = 0; this.rear = 0; this.size = 0; } public int dequeue() { /* 해당 메소드를 구현하시오. */ return -1; } public void enqueue(int data) { if (isEmpty()) // size == 0 elements[rear] = data; else elements[++rear] = data; size++; } public boolean isEmpty() { return size == 0; } public boolean isFull() { return size == capacity; } @Override public String toString() { StringBuffer sbuf = new StringBuffer("---------------\n"); for (int i = 0; i < capacity; i++) { if (i >= front && i <= rear && !isEmpty()) sbuf.append(String.format("%2d ", elements[i])); else sbuf.append(String.format("%2s ", "ø")); } sbuf.append("\n---------------\n"); sbuf.append("[0][1][2][3][4]\n\n"); sbuf.append(String.format("front: [%d], rear: [%d], isEmpty?: %s, isFull?: %s", front, rear, isEmpty(), isFull())); return sbuf.toString(); } } ```
관련 강의로 이동

코드: java 1.8

public class Main { public static void main(String[] args) { } }

입력

정답이 궁금하다면? 코드를 제출해보세요!