백준 10866 덱
문제 링크 : https://www.acmicpc.net/problem/10866
이 문제는, 덱의 기본 원리를 그대로 코드로 옮기면 되는 문제 입니다.
덱은 앞/뒤 모두 입출력 할 수 있습니다. 하지만, 덱이 비어있을경우 입출력은 불가 하다는점을 알고 있다면 쉽게 풀 수 있는 문제 입니다.
소스코드 :
#include#include #include using namespace std; int main() { int n; cin >> n; deque dq; while (n--) { string s; cin >> s; if (s == "push_front") { cin.ignore(); int a; cin >> a; cin.ignore(); dq.push_front(a); } else if (s == "push_back") { cin.ignore(); int b; cin >> b; cin.ignore(); dq.push_back(b); } else if (s == "pop_back") { if (dq.empty()) { cout << "-1" << endl; } else { cout << dq.back() << endl; dq.pop_back(); } } else if (s == "pop_front") { if (dq.empty()) { cout << "-1" << endl; } else { cout << dq.front() << endl; dq.pop_front(); } } else if (s == "size") { cout << dq.size() << endl; } else if (s == "empty") { if (dq.empty()) cout << 1 << endl; else cout << 0 << endl; } else if (s == "front") { if (dq.size() == 0) { cout << -1 << endl; } else { cout << dq.front() << endl; } } else if (s == "back") { if (dq.size() == 0) { cout << -1 << endl; } else { cout << dq.back() << endl; } } } }
댓글
댓글 쓰기