큐2(18258)
들어가는 말
큐를 구현하는 방식이다. 다행히(?) C++에는 헤더 queue로 구현이 되어 있기에 그리 어렵지는 않았다. 특히 배열로 큐를 구현하면 자료를 밀어줘야 해서 복잡한데, 그냥 queue에 있는 함수로 간단하게 구현했다.
코드 설명
스택에서 구현한 방식과 동일하게 했다. 다만, 다른 점이라면 추가된 헤더 파일이 stack이 아니라 queue라는 것. 백준 문제로 돌리면 시간 초과가 나오기에 입력을 줄일 수 있는 cin.tie(0); cin.sync_with_stdio(0);를 추가해주고 endl을 \n으로 바꿨다. endl과 \n의 차이가 무엇이냐 하면 endl은 임시 메모리 공간인 버퍼를 지우고 \n은 지우지 않은 것이다. 당연히 \n이 빠른 값이 된다.
코드
#include<iostream>
#include<queue>
using namespace std;
int main() {
cin.tie(0);
cin.sync_with_stdio(0);
queue<int>q;
int n;
string input;
int num;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> input;
if (input == "push") {
cin >> num;
q.push(num);
}
else if (input == "pop") {
if (q.empty()) {
cout << "-1\n";
}
else {
cout << q.front() << "\n";
q.pop();
}
}
else if (input == "size") {
cout << q.size() << "\n";
}
else if (input == "empty") {
if (q.empty()) {
cout << "1\n";
}
else {
cout << "0\n";
}
}
else if (input == "front") {
if (q.empty()) {
cout << "-1\n";
}
else {
cout << q.front() << "\n";
}
}
else if (input == "back") {
if (q.empty()) {
cout << "-1\n";
}
else {
cout << q.back() << "\n";
}
}
}
return 0;
}
Author And Source
이 문제에 관하여(큐2(18258)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jy1999/큐218258저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)