큐?
한쪽 끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄 수 있는 자료구조이다. First in first out (FIFO)의 특징을 가지고 있다.
- 원소의 추가 O(1)
- 원소의 제거 O(1)
- 제일 앞/뒤의 원소 검색 O(1)
- 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경의 경우 원칙적으로 불가능
연습 문제
1. 백준 10845 : https://www.acmicpc.net/problem/10845
using System.Text;
var count = int.Parse(Console.ReadLine());
Queue<int> queue = new Queue<int>();
for (int i = 0; i < count; i++)
{
StringBuilder sb = new StringBuilder();
var input = Console.ReadLine();
string[] token = input.Split(' ');
if (input != null)
{
if (input.Contains("push")) queue.Enqueue(int.Parse(token[1]));
else if (input == "pop")
{
if (queue.Count <= 0) sb.Append(-1);
else sb.Append(queue.Dequeue());
}
else if (input == "size") { sb.Append(queue.Count); }
else if (input == "empty")
{
if (queue.Count <= 0) sb.Append(1);
else sb.Append(0);
}
else if (input == "front")
{
if (queue.Count <= 0) sb.Append(-1);
else sb.Append(queue.Peek());
}
else if (input == "back")
{
if (queue.Count <= 0) sb.Append(-1);
else
{
int[] arr = queue.ToArray();
sb.Append(arr[arr.Length - 1]);
}
}
if (!input.Contains("push")) Console.WriteLine(sb.ToString());
}
}