[백준] 18258번

Jeanine·2022년 3월 8일
0

baekjoon

목록 보기
8/120
post-thumbnail

💻 C++ 기반

https://www.acmicpc.net/problem/18258

#include <cstdio>
#include <cstring>
#define MAX 2000001

using namespace std;

int q[MAX];
int head = 0, tail = 0;

void push(int x)
{
    q[tail++] = x;
}

void pop()
{
    head++;
}

int size()
{
    return tail - head;
}

int front()
{
    if (size() == 0)
    {
        return -1;
    }
    else
    {
        return q[head];
    }
}

int back()
{
    if (size() == 0)
    {
        return -1;
    }
    else
    {
        return q[tail - 1];
    }
}

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

    char op[10];
    for (int i = 0; i < N; i++)
    {
        scanf("%s", op);
        if (!strcmp(op, "push"))
        {
            int x;
            scanf("%d", &x);
            push(x);
        }
        else if (!strcmp(op, "front"))
        {
            printf("%d\n", front());
        }
        else if (!strcmp(op, "back"))
        {
            printf("%d\n", back());
        }
        else if (!strcmp(op, "size"))
        {
            printf("%d\n", size());
        }
        else if (!strcmp(op, "empty"))
        {
            if (size() == 0)
            {
                printf("1\n");
            }
            else
            {
                printf("0\n");
            }
        }
        else if (!strcmp(op, "pop"))
        {
            if (size() == 0)
            {
                printf("-1\n");
            }
            else
            {
                printf("%d\n", front());
                pop();
            }
        }
    }
    return 0;
}
profile
Grow up everyday

0개의 댓글