public class Main
{
public static void main(String[] args)
{
int[] queueI = {0, 0, 0, 0, 0};
System.out.println( "queueI.length=" + Integer.toString(queueI.length) );
System.out.println( "---------------------" );
AddQueue(queueI, 2023);
AddQueue(queueI, 9);
AddQueue(queueI, 23);
AddQueue(queueI, 14);
AddQueue(queueI, 11);
AddQueue(queueI, 22);
AddQueue(queueI, 33);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
AddQueue(queueI, 44);
AddQueue(queueI, 55);
}
static void AddQueue(int[] argQueue, int argNew)
{
int arrSize = argQueue.length;
if(argQueue[arrSize-1]>0)
{
System.out.println( "(AddQueue) Queue is FULL (argNew=" + Integer.toString(argNew) + ")" );
return;
}
if(argQueue[arrSize-1]<0)
{
System.out.println( "(AddQueue) Queue is not available" );
return;
}
for(int arrIdx=0; arrIdx<arrSize; arrIdx++)
{
if(argQueue[arrIdx]>0) { continue;/*해당 층은 이미 투숙객이 있으니 윗층으로*/ }
argQueue[arrIdx]=argNew;
System.out.println( "(AddQueue) new TAIL [" + Integer.toString(arrIdx) + "]=" + Integer.toString(argQueue[arrIdx]) );
break;
}
}
static int DeleteQueue(int[] argQueue)
{
int result = 0;
int arrSize = argQueue.length;
if(argQueue[arrSize-1]<0)
{
System.out.println( "(DeleteQueue) not available" );
return -1;
}
for(int arrIdx=arrSize-1; arrIdx>=0; arrIdx--)
{
if(argQueue[arrIdx]==0) { continue;/*해당 층은 이미 빈방이다.*/ }
result = argQueue[arrIdx];
argQueue[arrIdx]=-1;
arrIdx = arrIdx+1;
if(arrIdx>=arrSize){ arrIdx=arrSize-1; }
System.out.println( "(DeleteQueue) new HEAD [" + Integer.toString(arrIdx) + "]=" + Integer.toString(argQueue[arrIdx]) );
break;
}
return result;
}
}