-
[BOJ] 10845 큐 / C++공부/PS (백준) 2023. 1. 3. 20:12
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#include <iostream> #include <string> #define MAX_CAPACITY 10000 using namespace std; int N; // 명령의 수 (1<= <= 10000) int queue[MAX_CAPACITY] = { 0, }; int front_ptr = 0, back_ptr = 0; // queue pointers string cmd; int input_data; void push(int n) { if (back_ptr != MAX_CAPACITY) { queue[++back_ptr] = n; } } int pop() { if (front_ptr == back_ptr) return -1; int num = queue[front_ptr + 1]; front_ptr++; return num; } int size() { return (back_ptr - front_ptr); } int empty() { if (front_ptr == back_ptr) return 1; else return 0; } int front() { if (front_ptr == back_ptr) return -1; return queue[front_ptr + 1]; } int back() { if (front_ptr == back_ptr) return -1; return queue[back_ptr]; } int main(void) { cin >> N; for (int i = 0; i < N; i++) { cin >> cmd; if (cmd == "push") { cin >> input_data; push(input_data); } else if (cmd == "pop") { int top_num = pop(); cout << top_num << "\n"; } else if (cmd == "size") { int queue_size = size(); cout << queue_size << "\n"; } else if (cmd == "empty") { int is_empty = empty(); cout << is_empty << "\n"; } else if (cmd == "front") { int num = front(); cout << num << "\n"; } else if (cmd == "back") { int num = back(); cout << num << "\n"; } } return 0; }
'공부 > PS (백준)' 카테고리의 다른 글
[BOJ] 10866 덱 / C++ (1) 2023.01.14 [BOJ] 1966 프린터 큐 / C++ (0) 2022.05.18 [BOJ] 19238 스타트 택시 / C++ (0) 2022.04.28 [BOJ] 23288 주사위 굴리기 2 (0) 2022.04.24 [BOJ] 16235 나무 재테크 (0) 2022.04.19