큐3 우선순위 큐를 이용한 문제 풀이 - 절댓값 힙 구하기 * Do it 코딩테스트를 참고하였습니다. 해당 문제는 배열의 값들 중 가장 절대값이 작은 값을 출력하고, 해당 값을 제거합니다. 해당 절대값이 여러 개일 경우에는 그 중에서 가장 작은 값을 출력하는 문제입니다. 해당 문제는 반복해서 가장 작은 절대값, 그 중에서도 가장 작은 값을 출력하고 제거하는 방식을 가지고 있습니다. 그렇기 때문에 입력 배열에 대한 정렬이 우선적으로 필요하며, 0이 입력될 때마다 앞에서부터 차례로 제거해나가며 출력한다. 이를 구현하기 위해서 우선순위 큐라는 자료구조를 이용하고자 한다. 우선 순위 큐는 일반적인 큐와 다르게 정렬 기준에 따라서 큐 안에 들어있는 값들을 정렬한다는 특징이 있다. 그렇기 때문에 해당 문제에서 주어진 조건에 맞게 정렬을 하며 값을 넣고 빼며 원하는 값들을 .. 2023. 2. 9. 큐를 이용한 문제 풀이 - 카드 게임 * Do it 코딩테스트를 참고하였습니다. 큐는 FIFO( First - In - First - Out), 선입 선출의 특징을 지닌 선형 자료구조입니다. 해당 문제에서는 이러한 큐의 특성을 이용하여 문제를 보다 쉽게 풀이합니다. 맨 위의 카드는 버리고 두 번째 카드는 뽑아서 맨 뒤로 넣습니다. 이 과정을 큐로 나타낸다면 Pop, Pop (> N; deque deque; for (int i = 0; i < N; i++) { deque.push_back(i + 1); } while (deque.size() != 1) { deque.pop_front(); int temp = deque.front(); deque.pop_front(); deque.push_back(temp); } cout 2023. 2. 8. 자료구조 - 큐 이번에는 자료구조 큐에 대해 알아보도록 하겠습니다. 큐는 FIFO (First In First Out)의 구조를 가진 자료구조입니다. 먼저 들어온 데이터가 먼저 빠져나오는 방식으로 만들어져 있기 때문에 LIFO (Last In First Out)의 구조를 가진 스택과는 다른 구조를 지녔음을 알 수 있습니다. 마치 식당이나 은행에서 대기표를 받고, 대기 순서를 기다렸다가 먼저 대기표를 뽑은 순서대로 입장하듯, 먼저 들어온 데이터가 먼저 나가는 큐 자료구조 또한 많은 상황에서 사용할 수 있는 유용한 자료구조입니다. 우선 리스트 컨테이너를 이용한 큐를 살펴보도록 하겠습니다. template class ListQueue { public: void push(const T& value) { _container.pu.. 2023. 2. 6. 이전 1 다음