매일 조금씩

백준 10866번: 덱 본문

알고리즘

백준 10866번: 덱

mezo 2020. 4. 8. 18:08
728x90
반응형

 

 

 

 

 

덱 STL을 활용하면 쉽게 풀수 있는 문제였다.

 

 

 

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


int main(void) {
	ios_base::sync_with_stdio(0);
	cin.tie(0);	//cin 실행속도 향상

	int n;
	cin >> n;

	deque<int> dq;

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

		if (m == "push_front") {
			int pf;
			cin >> pf;
			dq.push_front(pf);
		}
		else if (m == "push_back") {
			int pb;
			cin >> pb;
			dq.push_back(pb);
		}
		else if (m == "pop_front") {
			if (dq.empty())
				cout << "-1\n";
			else {
				cout << dq.front() << "\n";
				dq.pop_front();
			}
		}
		else if (m == "pop_back") {
			if (dq.empty())
				cout << "-1\n";
			else {
				cout << dq.back() << "\n";
				dq.pop_back();
			}
		}
		else if (m == "size") {
			cout << dq.size() << "\n";
		}
		else if (m == "empty") {
			cout << dq.empty() << "\n";
		}
		else if (m == "front") {
			if (dq.empty())
				cout << "-1\n";
			else
				cout << dq.front() << "\n";
		}
		else if (m == "back") {
			if (dq.empty())
				cout << "-1\n";
			else
				cout << dq.back() << "\n";
		}

	}


	return 0;
}
728x90
반응형

'알고리즘' 카테고리의 다른 글

백준 5430번: AC  (0) 2020.04.09
백준 1021번: 회전하는 큐  (0) 2020.04.08
백준 1966번: 프린터 큐  (0) 2020.04.08
백준 11866번: 요세푸스 문제 0  (0) 2020.04.07
백준 2164번: 카드 2  (0) 2020.04.07