백준 10866 - 덱

황재진·2024년 3월 20일

백준

목록 보기
30/54
post-thumbnail

덱 자료구조에 대해 이해하고 있다면 쉽게 해결할 수 있습니다. 덱 자료구조에 대한 설명은 이전에 작성한 글인 덱 2에 적혀있습니다.

문제를 해결하기 위해 Deque 클래스를 만들어 해결했습니다. 해당 클래스 또한 덱 2에 적혀있습니다.

int main()
{
	std::cin.tie(NULL);
	std::ios_base::sync_with_stdio(false);

	int n;
	std::cin >> n;

	Deque deque(n);

	for (int i = 0; i < n; i++)
	{
		std::string temp;
		std::cin >> temp;
		int x;

		if (temp.compare("push_front") == 0)
		{
			std::cin >> x;
			deque.Add_Front(x);
		}
		else if (temp.compare("push_back") == 0)
		{
			std::cin >> x;
			deque.Add_Rear(x);
		}
		else if (temp.compare("pop_front") == 0)
		{
			std::cout << deque.Delete_Front() << "\n";
		}
		else if (temp.compare("pop_back") == 0)
		{
			std::cout << deque.Delete_Rear() << "\n";
		}
		else if (temp.compare("size") == 0)
		{
			std::cout << deque.Size() << "\n";
		}
		else if (temp.compare("empty") == 0)
		{
			int size = deque.Size();
			if (size == 0)
				std::cout << "1\n";
			else
				std::cout << "0\n";
		}
		else if (temp.compare("front") == 0)
		{
			std::cout << deque.Get_Front() << "\n";
		}
		else if (temp.compare("back") == 0)
		{
			std::cout << deque.Get_Rear() << "\n";
		}
	}
	return 0;
}
profile
프로그래밍, 쉐이더 등 이것저것 다해보는 게임 개발자입니다

0개의 댓글