매일 BOJ
(매일 BOJ) C++ 10845번 큐
norepinephrine
2025. 7. 9. 23:35
오늘 푼 푼제는 실버 4 문제인 큐이다.
이 문제의 접근법에 대해 간략히 살펴보자.
이 문제는 표준 입력으로 주어지는 명령어에 따라 큐에 원소를 추가(push), 삭제(pop), 큐의 크기(size), 비어 있는지(empty), 맨 앞(front), 맨 뒤(back) 값을 조회하는 동작을 수행하고, 각 명령의 결과를 즉시 출력하는 구현 문제다.
따라서 큐 자료구조의 기본 연산들을 정확히 처리하며, push 명령은 값을 큐에 넣기만 하고, pop/size/empty/front/back 명령에 대해서만 주어진 조건에 따라 결과를 출력하는 것이 핵심일 것이다.
단순히 큐를 사용하여 구현하면 되는 문제이기에 간단히 해결할 수 있었다.
아래는 작성한 코드다
#include <bits/stdc++.h>
using namespace std;
int main(void){
ios::sync_with_stdio(0); cin.tie(0);
int N;
cin >> N;
queue<int> q;
for (int i = 0; i < N; i++){
string str;
cin >> str;
if (str == "push"){
int X;
cin >> X;
q.push(X);
}
else if(str == "pop"){
if (q.size() == 0) cout << -1 << '\n';
else{
cout << q.front() << '\n';
q.pop();
}
}
else if(str == "size") cout << q.size() << '\n';
else if(str == "empty"){
if (q.size() == 0) cout << 1 << '\n';
else cout << 0 << '\n';
}
else if(str == "front"){
if (q.size() == 0) cout << -1 << '\n';
else cout << q.front() << '\n';
}
else if (str == "back"){
if (q.size() == 0) cout << -1 << '\n';
else cout << q.back() << '\n';
}
}
return 0;
}