본문 바로가기
백준/C++

백준 10866번 : 덱 [C++]

by 대니스 2022. 8. 18.

주소 : https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

소스 코드 :

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

int main()
{
	deque<int> d;
	int N,num;
	cin >> N;
	string order;

	while (N != 0)
	{
		cin >> order;
		if (order == "push_back")
		{
			cin >> num;
			d.push_back(num);
		}

		else if (order == "push_front")
		{
			cin >> num;
			d.push_front(num);
		}

		else if (order == "pop_front")
		{
			if (d.empty())
				cout << -1 << '\n';
			else
			{
				cout << d.front() << '\n';
				d.pop_front();
			}
		}

		else if (order == "pop_back")
		{
			if (d.empty())
				cout << -1 << '\n';
			else
			{
				cout << d.back() << '\n';
				d.pop_back();
			}
		}

		else if (order == "size")
			cout << d.size() << '\n';

		else if (order == "empty")
			cout << d.empty() << '\n';

		else if (order == "front")
		{
			if (d.empty())
				cout << -1 << '\n';
			else
				cout << d.front() << '\n';
		}

		else if (order == "back")
		{
			if (d.empty())
				cout << -1 << '\n';
			else
				cout << d.back() << '\n';
		}

		N--;
	}
}

마무리 : C++에서는 stl에서 덱이 있기 때문에 이를 이용하여 코드를 짰다. 덱의 가장 기본적인 문제로 문제의 조건에 맞게 입력을 비교하여 덱을 이용해주면 된다.

'백준 > C++' 카테고리의 다른 글

백준 1966번 : 프린터 큐 [C++]  (0) 2022.08.22
백준 1929번 : 소수 구하기 [C++]  (0) 2022.08.18
백준 9012번 : 괄호 [C++]  (0) 2022.08.15
백준 4949번 : 균형잡힌 세상 [C++]  (0) 2022.08.15
백준 2839번 : 설탕 배달 [C++]  (0) 2022.08.15