Dolphins의 HelloWorld

[백준]Baekjoon10866(Deque) 본문

Algorithm/baekjoon문제풀이

[백준]Baekjoon10866(Deque)

돌핀's 2018. 6. 28. 11:40


이 문제를 풀기 위해서는 덱을 구현해야한다.


덱을 직접 구현하는것도 좋지만 이렇게 문제를 풀때는 빠르게 푸는것도 중요하므로


c++에서 제공하는 라이브러리를 사용하도록 하자.


https://en.cppreference.com/w/cpp/container/deque


위의 링크에서 c++라이브러리에서 제공하는 deque에 대한 정보를 확인할 수 있다.


다음의 코드는 이것을 통해서 구현한 코드이다.



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

using namespace std;

int main()
{
	deque<int> deq;
	string s; int num;

	int N;
	scanf("%d", &N);
	while (N--) {
		cin >> s;
		if (s == "push_front") {
			scanf("%d", &num);
			deq.push_front(num);
		}
		else if (s == "push_back") {
			scanf("%d", &num);
			deq.push_back(num);
		}
		else if (s == "pop_front") {
			if (deq.empty()) printf("-1\n");
			else {
				printf("%d\n", deq.front());
				deq.pop_front();
			}
		}
		else if (s == "pop_back") {
			if (deq.empty()) printf("-1\n");
			else {
				printf("%d\n", deq.back());
				deq.pop_back();
			}
		}
		else if (s == "size") printf("%d\n", deq.size());
		else if (s == "front")
			deq.empty() ? printf("-1\n") : printf("%d\n", deq.front());
		else if (s == "back")
			deq.empty() ? printf("-1\n") : printf("%d\n", deq.back());
		else
			deq.empty() ? printf("1\n") : printf("0\n");
	}
}

'Algorithm > baekjoon문제풀이' 카테고리의 다른 글

[백준]Baekjoon4949(Stack)  (0) 2018.07.01
[백준]Baekjoon1076(map)  (0) 2018.07.01
[백준]Baekjoon1966(Queue)  (0) 2018.06.28
[백준]Baekjoon10845(Queue)  (0) 2018.06.26
[백준]Baekjoon10828(스택)  (0) 2018.06.26
Comments