백준 10866번 : 덱

dldzm·2021년 2월 25일
0

알고리즘 공부

목록 보기
33/42
post-thumbnail

링크 : https://www.acmicpc.net/problem/10866

문제읽기

deque 자료구조 확인하는 문제. 복습하는 차원으로 빠르게 접근하자.

코드

#include <iostream>
#include <string>
#include <deque>
using namespace std;
//push back과 front만 숫자를 받음

void dequecheck(deque<int>& dq, string str) {
	int num;
	if (str == "push_back") {
		cin >> num;
		dq.push_back(num);
	}

	else if (str == "push_front") {
		cin >> num;
		dq.push_front(num);
	}

	else if (str == "pop_front") {
		if (dq.empty()) {
			cout << -1 << endl;
		}
		else {
			cout << dq.front() << endl;
			dq.pop_front();
		}
	}

	else if (str == "pop_back") {
		if (dq.empty()) {
			cout << -1 << endl;
		}
		else {
			cout << dq.back() << endl;
			dq.pop_back();
		}
	}

	else if (str == "size") {
		cout << dq.size() << endl;
	}

	else if (str == "empty") {
		if (dq.empty())
			cout << 1 << endl;
		else
			cout << 0 << endl;
	}

	else if (str == "front") {
		if (!dq.empty()) {
			cout << dq.front() << endl;
		}
		else
			cout << -1 << endl;
	}

	else {
		if (!dq.empty()) {
			cout << dq.back() << endl;
		}
		else
			cout << -1 << endl;
	}
}



int main() {
	int N;
	string str;
	deque<int> dq;
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> str;
		dequecheck(dq, str);
	}
	return 0;
}

분석

출력 형식을 잘못 맞춰서 겁나 틀렸다. 다음에는 차분히 맞추길... 그냥 문제 번호를 외워서 이러한 경우에는 이 문제 이렇게 접근 -> 기계처럼 풀어야 하나 싶다. 우선 해보자.

profile
🛰️ 2021 fall ~

0개의 댓글