2018 Java Chapter 10 (Week 10)

From: 2018-09-01 00:00:00 To: 2018-12-18 00:00:00 Now: 2024-11-23 17:19:16 Status: Public

D - 큐 클래스

Time Limit: 1s Memory Limit: 128MB

Snippet Judge Submissions: 1056 Solved: 405
Description

정수를 저장하는 큐(Queue) 클래스를 만들어 보자. 복수의 원소를 유지한다는 점에서 스택과 큐는 유사하지만, 입력과 출력에서는 서로 다른 접근 방법을 취한다. 스택이 나중에 도착한 원소를 먼저 출력한다면, 큐는 먼저 입력된 원소를 먼저 출력한다. 여러분이 생성할 큐 클래스는 다음 내용을 포함해야 한다.

  • 큐 안의 int값들을 저장하는 int[]형의 elements 필드를 가진다.
  • 큐 안의 elements의 수를 저장하는 size 필드를 가진다.
  • 배열 크기가 8인 큐를 만드는 생성자를 가진다.
  • 큐 안으로 v를 넣는 enqueue(int v) 메소드를 가진다.
  • 큐에서 element를 반환하고 제거하는 dequeue() 메소드를 가진다.
  • 만약 큐가 비어있으면 true를 반환하는 empty()메소드를 가진다.
  • 큐의 크기를 반환하는 getSize() 메소드를 가진다.

 

Section 10.6 gives a class for Stack. Design a class named Queue for storing integers. Like a stack, a queue holds elements. In a stack, the elements are retrieved in a last-in first-out fashion. In a queue, the elements are retrieved in a first-in first-out fashion. The class contains:

  • An int[] data field named elements that stores the int values in the queue.
  • A data field named size that stores the number of elements in the queue.
  • A constructor that creates a Queue object with default capacity 8.
  • The method enqueue(int v) that adds v into the queue.
  • The method dequeue() that removes and returns the element from the queue.
  • The method empty() that returns true if the queue is empty.
  • The method getSize() that returns the size of the queue.

 

 

Input

큐 클래스의 테스트를 위해서 첫째 줄에는 입력의 개수 N이 들어온다. 둘째 줄 부터는 N개의 정수가 입력으로 들어 온다. -1이 입력으로 들어올 경우 dequeue를 수행하고, 그외의 수는 큐에 enqueue 수행 한다. 

* Line 1 : 명령의개수 N (1~1,000)

* Line 2 ~ N+1 : 정수형의 데이터 (-1~1,000)

 

Output

큐에 남아 있는 원소를 Sample Output의 형태로 순서대로 출력한다. 

Sample Code
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Queue queue = new Queue();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        for (int i = 0; i < N; i++) {
            int n = sc.nextInt();
            if (n == -1) {
                if (!queue.empty()) queue.dequeue();
            } else {
                queue.enqueue(n);
            }
        }
        while (!queue.empty())
            System.out.println(queue.dequeue());
    }
}

YOUR_CODE
Sample Input
6
5
-1
-1
2
3
4
Sample Output
2
3
4
Source

JAVA2015 PE10.10