백준 10845번 : 큐
링크 : https://www.acmicpc.net/problem/10845
문제읽기
정수를 저장하는 큐. 입력으로 주어지는 명령을 처리해야 하니까 switch문 쓰면 좋겠다. 가자.
코드
#include<iostream>
#include <queue>
#include <cstring>
using namespace std;
void solution(queue<int>& que, string& cmd) {
if (cmd=="push") {
int num;
cin >> num;
que.push(num);
}
else if (cmd == "pop") {
if (!que.empty()) {
cout << que.front() << endl;
que.pop();
}
else {
cout << -1 << endl;
}
}
else if (cmd == "size") {
cout << que.size() << endl;
}
else if (cmd == "front") {
if (!que.empty()) {
cout << que.front() << endl;
}
else {
cout << -1 << endl;
}
}
else if (cmd == "empty") {
if (!que.empty()) {
cout << 0 << endl;
}
else {
cout << 1 << endl;
}
}
else {
if (!que.empty()) {
cout << que.back() << endl;
}
else {
cout << -1 << endl;
}
}
return;
}
int main() {
int N;
string cmd;
queue<int> que;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> cmd;
solution(que, cmd);
}
return 0;
}
분석
그러한 인식. push
만 숫자를 입력받아야 할 경우 애초에 num
까지 받지 말고 push
명령어가 들어왔을 때만 num
을 받아야 겠다는 인식. 그러한 인식이 가장 중요하다. 최대한 코드를 단순화 시켜야 한다.
queue는 선입선출이라는 것을 잊지말자. 제발 방학 전에 자료구조 정리 한번 들어가야겠다.
Author And Source
이 문제에 관하여(백준 10845번 : 큐), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ntbij29/백준-10845번-큐저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)