코딩 공부/알고리즘

큐 queue

공부를 함 2024. 10. 11. 10:30

큐?

한쪽 끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄 수 있는 자료구조이다. 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());
    }
}

'코딩 공부 > 알고리즘' 카테고리의 다른 글

스택 활용  (0) 2024.10.12
덱 Double ended queue  (0) 2024.10.11
스택 Stack  (0) 2024.10.11
연결 리스트  (0) 2024.10.11
배열  (0) 2024.10.11