728x90
반응형
27497번: 알파벳 블록
문제
https://www.acmicpc.net/problem/27497
27497번: 알파벳 블록
첫째 줄에 버튼을 누른 횟수 $N$이 주어진다. $(1 \leq N \leq 1\,000\,000)$ 둘째 줄부터 $N$개의 줄에는 버튼을 누른 순서대로 누른 버튼에 대한 정보를 주며 아래와 같은 형식으로 주어진다. 1 c : 문자열
www.acmicpc.net
풀이
덱의 기본적인 쿼리를 사용하는 문제다. 가장 마지막에 추가한 수가 덱의 앞인지 뒤인지 판단하기 위해 스택을 만들어 하나씩 pop 하며 판단했다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
deque<char> dq;
stack<int> s;
int n;
cin >> n;
while (n--) {
int cmd;
char c;
cin >> cmd;
if (cmd == 1) {
cin >> c;
dq.push_back(c);
s.push(-1);
} else if (cmd == 2) {
cin >> c;
dq.push_front(c);
s.push(1);
} else {
if (!s.empty()) {
if (s.top() == 1) {
dq.pop_front();
s.pop();
} else if (s.top() == -1) {
dq.pop_back();
s.pop();
}
}
}
}
if (dq.empty())
cout << 0;
else
for (int i = 0; i < dq.size(); i++)
cout << dq[i];
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 1545 안티 팰린드롬 (0) | 2023.02.21 |
---|---|
[백준 / BOJ] C++ 14284 간선 이어가기 2 (0) | 2023.02.20 |
[백준 / BOJ] C++ 27496 발머의 피크 이론 (0) | 2023.02.20 |
[백준 / BOJ] C++ 27495 만다라트 만들기 (0) | 2023.02.20 |
[백준 / BOJ] C++ 27494 2023년은 검은 토끼의 해 (0) | 2023.02.20 |