덱(10866)

NJW·2021년 8월 31일
0

코테

목록 보기
99/170

들어가는 말

덱이란 큐를 기본으로 두고 앞과 뒤에서 삽입, 삭제가 가능한 자료구조이다. c++이라면 deque를 포함해서 사용할 수 있다.

코드 설명

문자열을 받아서 비교하면서 필요한 명령문을 실행하도록 했다. 속도를 빨리하기 위해 cin.tie(0);
cin.sync_with_stdio(0);
를 추가하고 endl을 \n로 사용했다.

코드

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

int main() {
	cin.tie(0);
	cin.sync_with_stdio(0);

	int n;
	cin >> n;
	deque<int> deq;

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

		if (s == "push_front") {
			int input;
			cin >> input;
			deq.push_front(input);
		}
		else if (s == "push_back") {
			int input;
			cin >> input;
			deq.push_back(input);
		}
		else if (s == "pop_front") {
			if (deq.empty()) {
				cout << "-1\n";
			}
			else {
				cout << deq.front() << "\n";
				deq.pop_front();
			}
		}
		else if (s == "pop_back") {
			if (deq.empty()) {
				cout << "-1\n";
			}
			else {
				cout << deq.back() << "\n";
				deq.pop_back();
			}
		}
		else if (s == "size") {
			cout << deq.size() << "\n";
		}
		else if (s == "empty") {
			if (deq.empty()) {
				cout << "1\n";
			}
			else {
				cout << "0\n";
			}
		}
		else if (s == "front") {
			if (deq.empty()) {
				cout << "-1\n";
			}
			else {
				cout << deq.front() << "\n";
			}
		}
		else if (s == "back") {
			if (deq.empty()) {
				cout << "-1\n";
			}
			else {
				cout << deq.back() << "\n";
			}
		}
	}
}
profile
https://jiwonna52.tistory.com/

0개의 댓글