[C++] 백준 18258. 큐 2

멋진감자·2024년 12월 7일
1

알고리즘

목록 보기
30/65
post-thumbnail

문제

명령에 맞게 실행하고, 결과를 보여주면 되는 문제이다.

queue

큐는 BFS 할 때 좀 써서 그런지 다른 자료구조보단 익숙한 것 같다.
push, pop, size, empty, front, back으로 데이터에 접근할 수 있고
프링글스였던 stack과 다르게 선입선출 구조를 가지고 있다.

풀이

신경써 줄 부분은 pop 함수를 사용했을 때 front 값을 출력하지 않는다는 것.
그냥 뽑을 뿐이므로 코드를 추가해준다.
고대-로 죽죽 써내려가면 된다.

코드

#include <iostream>
#include <queue>
using namespace std;

int n, x;
string order;
queue<int> q;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> order;

		if (order == "push") {
			cin >> x;
			q.push(x);
		}
		else if (order == "pop") {
			if (!q.empty()) {
				cout << q.front() << "\n";
				q.pop();
			}
			else cout << "-1\n";
		}
		else if (order == "size") {
			cout << q.size() << "\n";
		}
		else if (order == "empty") {
			cout << q.empty() << "\n";
		}
		else if (order == "front") {
			if (!q.empty()) {
				cout << q.front() << "\n";
			}
			else cout << "-1\n";
		}
		else {
			if (!q.empty()) {
				cout << q.back() << "\n";
			}
			else cout << "-1\n";
		}
	}

	return 0;
}

채점

ios 어쩌구. 만능코드.

profile
난멋져

0개의 댓글