Menu
Coddy logo textTech

Practice #3

Coddy의 큐 - 자료구조 시리즈 #2 코스 레슨 — 12개 중 11번째.

Queue를 원형 큐로 업그레이드해 봅시다!

challenge icon

챌린지

쉬움

Queue 클래스를 원형 큐(circular queue)를 지원하도록 업그레이드하고, 클래스 이름을 CircularQueue로 변경하세요.

생성자는 원형 큐의 최대 크기(maximum size)를 나타내는 정수를 인자로 받습니다. 큐가 가득 찬 상태에서 새로운 항목이 인큐(enqueue)되면, 가장 오래된 항목(앞부분)이 제거되어 공간을 만듭니다. 이를 지원하도록 다른 메서드들도 업데이트하세요.

직접 해보기

#include <iostream>
#include <sstream>
#include <string>
#include "circular_queue.h"

int main() {
    std::string line;
    std::getline(std::cin, line);
    CircularQueue q(std::stoi(line));
    while (std::getline(std::cin, line)) {
        std::istringstream iss(line);
        std::string cmd;
        if (!(iss >> cmd)) continue;
        if (cmd == "enqueue") {
            int x; iss >> x; q.enqueue(x);
        }
        if (cmd == "dequeue") {
            q.dequeue();
        }
        if (cmd == "front") {
            std::cout << q.front() << std::endl;
        }
        if (cmd == "rear") {
            std::cout << q.rear() << std::endl;
        }
        if (cmd == "size") {
            std::cout << q.size() << std::endl;
        }
    }
    return 0;
}

큐 - 자료구조 시리즈 #2의 모든 레슨