반응형
큐 ( queue )
요소가 한쪽 끝(후면)에서 추가되고 다른 쪽 끝(전면)에서 제거되는 요소 컬렉션을 나타내는 추상 데이터 유형
대기열은 FIFO(First In First Out,선입선출) 원칙을 따른다. 즉, 먼저 추가된 요소가 먼저 제거된다.
c#에는 고맙게도 Queue<T> 클래스가 구현 되어있다. 이때 T는 큐에 저장된 요소의 유형이다.
큐 구현 및 메소드 사용
1. 큐 구현
Queue<int> queue = new Queue<int>();
2.큐 삽입
queue.Enqueue(10);
queue.Enqueue(20);
queue.Enqueue(30);
3. 큐 제거
int firstItem = queue.Dequeue();
이때 queue.Dequeue();는 제거 된 요소 값을 반환하므로 fisrtItem 변수에 초기화 가능
4. 큐 크기
if (queue.Count > 0)
{
// Do something with the queue
}
5. 큐 요소 출력
Queue<int> myQueue = new Queue<int>();
myQueue.Enqueue(1);
myQueue.Enqueue(2);
myQueue.Enqueue(3);
foreach (int item in myQueue)
{
Console.WriteLine(item);
}
foreach를 사용하여 요소를 출력한다.
5-1.큐 첫번째 요소만 출력
Queue<int> myQueue = new Queue<int>();
myQueue.Enqueue(10);
myQueue.Enqueue(20);
myQueue.Enqueue(30);
Console.WriteLine(myQueue.Peek()); // Output: 10
이때 Peek()는 큐에서 어떠한 값을 바꾸는 것이아닌 참조에 의한 복사이다.
5-2.큐 마지막 요소만 출력
Queue<int> myQueue = new Queue<int>();
myQueue.Enqueue(10);
myQueue.Enqueue(20);
myQueue.Enqueue(30);
Console.WriteLine(myQueue.Last()); // Output: 30
Last() 역시 참조에 의한 복사이다.
6. 큐 요소 확인
Queue<int> queue = new Queue<int>();
queue.Enqueue(10);
queue.Enqueue(20);
queue.Enqueue(30);
bool contains20 = queue.Contains(20); // returns true
bool contains40 = queue.Contains(40); // returns false
C#에서 제공하는 큐 클래스를 사용해 백준 알고리즘을 아래 풀어보았다.
[c#]백준 알고리즘 10845 - 큐
이제 구현 파트에서 자료구조 파트를 넘어가는 시기가 되었다. 이제 코드를 구조적으로 구현 할 수있다는 생각을 하니 조금은 뿌듯하다. C#에서 큐 클래스가 이미 구현되어있기 때문에 큐 클래
rnflajdrnfl.tistory.com
반응형
'알고리즘' 카테고리의 다른 글
스택( stack )의 구현과 메소드 사용 [C#] (2) | 2023.04.18 |
---|---|
정렬 알고리즘 시간 복잡도, 공간 복잡도와 구현(복잡하지만 효율적 정렬) (0) | 2023.04.14 |
정렬 알고리즘 시간 복잡도, 공간 복잡도와 구현 (0) | 2023.04.05 |
유클리드 알고리즘 정의 (0) | 2023.03.31 |
브루트 포스 알고리즘 정의 (0) | 2023.03.21 |