티스토리 뷰
코드는 스택을 재활용했다. 큐 역시 C#에서 지원하지만 배열로 구현했다.
스택과 다르게 앞을 가리키는 인덱스, 뒤를 가리키는 인덱스 해서 총 2개의 인덱스가 필요하다. 이는 큐가 FIFO이기 때문이다.
string[] str;
string[] keyword = new string[] { "push", "pop", "size", "empty", "front", "back" };
int[] queue = new int[10000];
int frontIndex = 0;
int backIndex = 0;
int num = int.Parse(Console.ReadLine());
for (int i = 0; i < num; i++)
{
str = Console.ReadLine().Split();
for (int x = 0; x < keyword.Length; x++)
{
if (str[0].Equals(keyword[x]))
{
switch (x)
{
case 0:
queue[backIndex++] = int.Parse(str[1]);
break;
case 1:
if (backIndex == frontIndex)
Console.WriteLine("-1");
else
Console.WriteLine(queue[frontIndex++]);
break;
case 2:
if (backIndex == frontIndex)
Console.WriteLine("0");
else
Console.WriteLine(backIndex - frontIndex);
break;
case 3:
if (backIndex == frontIndex)
Console.WriteLine("1");
else
Console.WriteLine("0");
break;
case 4:
if (backIndex == frontIndex)
Console.WriteLine("-1");
else
Console.WriteLine(queue[frontIndex]);
break;
case 5:
if (backIndex == frontIndex)
Console.WriteLine("-1");
else
Console.WriteLine(queue[backIndex - 1]);
break;
}
}
}
}
var도 쓰시는데 var는 어떤 큰 이점이 있는지 모르겠다. 뭐에 좋지..?
그리고 반복문에 x-->0도 처음보는데 x값에서 -1씩 되어서 0될때까지 반복하는가봄.
진짜 남의 코드 안보고서는 안쓰는 건 평생 안쓸듯... 풀고나면 다른사람 공개코드도 좀 봐야지.
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
백준 할때 자주 찾는 메소드 (0) | 2018.08.10 |
---|---|
[C#]백준 1966번 : 프린터 큐 (0) | 2018.08.10 |
[C#]백준 9012번 : 괄호 (0) | 2018.08.09 |
[C#]백준 10828번 : 스택 (0) | 2018.08.09 |
[C#]백준 10823번 : 더하기 2 (0) | 2018.08.09 |