[백준 28279] 덱 2

alsry._.112·2023년 10월 10일
0

백준

목록 보기
80/102

🔗문제 풀러가기
단계별로 풀어보기 단계 16의 9번째 문제이다.

문제 분석

Deque컨네이너를 사용하여 문제를 해결하였다.

코드

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

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

	int n, k, input;
	cin >> n;
	deque<int> deq;

	for (int i = 0; i < n; i++)
	{
		cin >> k;
		switch (k)
		{
		case 1:
			cin >> input;
			deq.push_front(input);
			break;
		case 2:
			cin >> input;
			deq.push_back(input);
			break;
		case 3:
			if (deq.empty()) { cout << -1 << "\n"; }
			else
			{
				cout << deq.front() << "\n";
				deq.pop_front();
			}
			break;
		case 4:
			if (deq.empty()) { cout << -1 << "\n"; }
			else
			{
				cout << deq.back() << "\n";
				deq.pop_back();
			}
			break;
		case 5:
			cout << deq.size() << "\n";
			break;
		case 6:
			if (deq.empty()) { cout << 1 << "\n"; }
			else { cout << 0 << "\n"; }
			break;
		case 7:
			if (deq.empty())
			{
				cout << -1 << "\n";
			}
			else
			{
				cout << deq.front() << "\n";
			}
			break;
		case 8:
			if (deq.empty())
			{
				cout << -1 << "\n";
			}
			else
			{
				cout << deq.back() << "\n";
			}
			break;
		}
	}
}

해석

입력받은 수에 따라 조건대로 처리해주기만 하면 되는 문제이다.

profile
소통해요

0개의 댓글