https://www.acmicpc.net/problem/28279
문제의 요구사항대로 deque를 사용한 다음 switch문을 통해 입력에 따라 동작을 수행해주면 된다. 이때 시간초과가 뜰 수 도 있는데 이때 입출력에서 최적화해주기 위해 다음 코드를 입출력 앞에서 선언해주자.
ios::sync_with_stdio(false); // C++ 표준 입출력과 C 표준 입출력의 동기화를 비활성화
cin.tie(NULL); // cin과 cout의 묶음을 해제하여 성능 향상
정답코드
#include <iostream>
#include <deque>
using namespace std;
int main() {
ios::sync_with_stdio(false); // C++ 표준 입출력과 C 표준 입출력의 동기화를 비활성화
cin.tie(NULL); // cin과 cout의 묶음을 해제하여 성능 향상
deque<int> dq;
int n, x;
cin >> n;
for (int i = 0; i < n; i++) {
int order;
cin >> order;
switch (order) {
case 1:
cin >> x;
dq.push_front(x);
break;
case 2:
cin >> x;
dq.push_back(x);
break;
case 3:
if (!dq.empty()) {
cout << dq.front() << '\n'; // '\n' 사용
dq.pop_front();
}
else {
cout << "-1\n";
}
break;
case 4:
if (!dq.empty()) {
cout << dq.back() << '\n'; // '\n' 사용
dq.pop_back();
}
else {
cout << "-1\n";
}
break;
case 5:
cout << dq.size() << '\n';
break;
case 6:
cout << (dq.empty() ? 1 : 0) << '\n';
break;
case 7:
if (!dq.empty()) {
cout << dq.front() << '\n';
}
else {
cout << "-1\n";
}
break;
case 8:
if (!dq.empty()) {
cout << dq.back() << '\n';
}
else {
cout << "-1\n";
}
break;
}
}
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]15439번. 베라의 패 (3) | 2024.10.08 |
---|---|
[백준][C++]2346번. 풍선 터뜨리기 (0) | 2024.10.07 |
[백준][C++]11866번. 요세푸스 문제 0 (1) | 2024.10.04 |
[백준][C++]2164번. 카드2 (1) | 2024.10.03 |
[백준][C++]12789번. 도키도키 산식드리미 (0) | 2024.10.03 |