문제 : https://www.acmicpc.net/problem/10866


[알고리즘풀이]

Deque(덱) 자료구조를 이용한 문제로 입력된 명령을 그대로 수행하면 된다.

Deque(덱) 자료구조 설명 : https://travelbeeee.tistory.com/60?category=807507

#include<iostream>
#include<string>
#include<deque>

using namespace std;

int main(void) {
    ios::sync_with_stdio(false);
    cin.tie(0);
	deque<int> dq;
	string input;
	int n;
	
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> input;
		if (input == "push_front") {
			int temp;
			cin >> temp;
			dq.push_front(temp);
		}
		else if (input == "push_back") {
			int temp;
			cin >> temp;
			dq.push_back(temp);
		}
		else if (input == "pop_front") {
			if (dq.empty())
				cout << "-1\n";
			else {
				cout << dq.front() << '\n';
				dq.pop_front();
			}
		}
		else if (input == "pop_back") {
			if (dq.empty())
				cout << "-1\n";
			else {
				cout << dq.back() << '\n';
				dq.pop_back();
			}
		}
		else if (input == "size") {
			cout << dq.size() << '\n';
		}
		else if (input == "empty") {
			if (dq.empty())
				cout << "1\n";
			else
				cout << "0\n";
		}
		else if (input == "front") {
			if (dq.empty())
				cout << "-1\n";
			else
				cout << dq.front() << '\n';
		}
		else {
			if (dq.empty())
				cout << "-1\n";
			else
				cout << dq.back() << '\n';
		}
	}
}

 

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ] 5430 - Integer Lists  (0) 2019.09.18
[BOJ] 1021 - 회전하는 큐  (0) 2019.09.17
[BOJ] 1966 - Printer Queue  (0) 2019.09.17
[BOJ] 11866 - 조세퍼스 문제 0  (0) 2019.09.17
[BOJ] 2164 - 카드2  (0) 2019.09.17

+ Recent posts