본문 바로가기
BaekJoon/C++

10845 : 큐 (C)

by GrayChoi 2021. 1. 10.
반응형

 

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net


#include<stdio.h>
#include<string.h>
#define SIZE 10001

int queue[SIZE];
int front = -1, rear = -1;

void push(int data) {
    queue[++rear] = data;
}

int pop() {
    if(front == rear) {
        return -1;
    } else {
        return queue[++front];
    }
}

int size() {
    return rear - front;
}

int empty() {
    if(front == rear) {
        return 1;
    } else {
        return 0;
    }
}

int frontCheck() {
    if(front == rear) {
        return -1;
    } else {
        return queue[front + 1];
    }
}

int rearCheck() {
    if(front == rear) {
        return -1;
    } else {
        return queue[rear];
    }
}

int main() {
    int T;
    scanf("%d", &T);

    for(int i = 0; i < T; i++) {
        char sel[6];
        scanf("%s", sel);

        if(!strcmp(sel, "push")) {
            int data;
            scanf("%d", &data);
            push(data);
        } else if(!strcmp(sel, "pop")) {
            printf("%d\n", pop());
        } else if(!strcmp(sel, "size")) {
            printf("%d\n", size());
        } else if(!strcmp(sel, "empty")) {
            printf("%d\n", empty());
        } else if(!strcmp(sel, "front")) {
            printf("%d\n", frontCheck());
        } else {
            printf("%d\n", rearCheck());
        }
    }

    return 0;
}

배열로 대충 구현해 보았다...

반응형

'BaekJoon > C++' 카테고리의 다른 글

1874 : 스택 수열 (C)  (0) 2021.01.10
11866 : 요세푸스 문제 (C)  (0) 2021.01.10
9012 : 괄호 (C)  (0) 2021.01.09
10828 : 스택 (C)  (0) 2021.01.09
10870 : 피보나치 수 5 (C++)  (0) 2020.12.21

댓글