#include "..\CookHeader.h"

int SIZE = 5;
Array <string> queue;
int front = -1, rear = -1;

bool isQueueFull() {
	if (rear == SIZE - 1)
		return true;
	else
		return false;
}

bool isQueueEmpty() {
	if (front == rear)
		return true;
	else
		return false;
}

void enQueue(string data) {
	if (isQueueFull()) {
		println("큐가 꽉 찼습니다.");
		return;
	}
	rear++;
	queue[rear] = data;
}

string deQueue() {
	if (isQueueEmpty()) {
		println("큐가 비었습니다.");
		return "None";
	}
	front++;
	string data = queue[front];
	queue[front] = "None";

	for (int i = front+1; i < rear+1; i++) { // 모든 사람을 한 칸씩 앞으로 당긴다.
		queue[i - 1] = queue[i];
		queue[i] = "None";
	}
	front = -1;
	rear--;
	return data;
}

string peek() {
	if (isQueueEmpty()) {
		println("큐가 비었습니다.");
		return "None";
	}
	return queue[front+1];
}

int main() {
	for (int i = 0; i < SIZE; i++)
		queue.push_back("None");

	enQueue("정국");
	enQueue("뷔");
	enQueue("지만");
	enQueue("진");
	enQueue("슈가");
	print("대기 줄 상태 : ");
	printArray(queue);

	int last = rear + 1; // 현재 손님의 마지막 위치
	for (int i = 0; i < last; i++) {
		println(deQueue() + "님 식당에 들어감");
		print("대기 줄 상태 : ");
		printArray(queue);
	}	

	println("식당 영업 종료!");
}