알고리즘 모음(C++)

백준 10866 - 덱(C++) 본문

백준

백준 10866 - 덱(C++)

공대생의 잡다한 사전 2021. 11. 3. 01:30

문제 링크입니다. https://www.acmicpc.net/problem/10866

 

10866번: 덱

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

www.acmicpc.net

deque에 관한 명령어를 알아보는 문제였습니다.

문제 조건
출력 예시

 

간단한 문제니 코드를 보면 이해가 쉽습니다.

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>

using namespace std;

int N;
deque<int> dq;

int main() {
	cin.tie(0);
	cout.tie(0);
	cin >> N;
	for (int i = 0; i < N; i++) {
		string x;
		cin >> x;
		if (x[0] == 'p' && x[5] == 'b') {
			int xx;
			cin >> xx;
			dq.push_back(xx);
		}
		else if (x[0] == 'p' && x[5] == 'f') {
			int xx;
			cin >> xx;
			dq.push_front(xx);
		}
		else if (x == "front") {
			if (dq.empty() == 1) {
				cout << "-1" << "\n";
			}
			else {
				cout << dq.front() << "\n";
			}
		}
		else if (x == "back") {
			if (dq.empty() == 1) {
				cout << "-1" << "\n";
			}
			else {
				cout << dq.back() << "\n";
			}
		}
		else if (x == "size") {
			cout << dq.size() << "\n";
		}
		else if (x == "empty") {
			cout << dq.empty() << "\n";
		}
		else if (x[0] == 'p' && x[4] == 'f') {
			if (dq.empty() == 1) {
				cout << "-1" << "\n";
			}
			else {
				cout << dq.front() << "\n";
				dq.pop_front();
			}
		}
		else if (x[0] == 'p' && x[4] == 'b') {
			if (dq.empty() == 1) {
				cout << "-1" << "\n";
			}
			else {
				cout << dq.back() << "\n";
				dq.pop_back();
			}
		}
	}
	return 0;
}

 

 

질문 및 조언 댓글 남겨주세요!

'백준' 카테고리의 다른 글

백준 4949 - 균형잡힌 세상(C++)  (0) 2021.11.03
백준 1436 - 영화감독 숌(C++)  (0) 2021.11.03
백준 10816 - 숫자 카드2(C++)  (0) 2021.11.03
백준 1806 - 부분합(C++)  (0) 2021.11.02
백준 1644 - 소수의 연속합(C++)  (0) 2021.11.02