https://www.acmicpc.net/problem/1406
λ©λͺ¨λ¦¬ : 2808 KB
μκ° : 40 ms
#include <iostream>
#include <stack>
int N;
std::stack <char> left;
std::stack <char> right;
std::stack <char> tmp;
void input_faster()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
std::string str;
std::cin >> str;
for(int i = 0; i < str.size() ; i++){
left.push(str[i]);
}
std::cin >> N;
}
void solve()
{
char func;
while (N--){
std::cin >> func;
if (func == 'P'){
char x;
std::cin >> x;
left.push(x);
}
else if (func == 'L'){
if (!left.empty()){
right.push(left.top());
left.pop();
}
}
else if (func == 'B'){
if (!left.empty())
left.pop();
}
else if (func == 'D'){
if (!right.empty()){
left.push(right.top());
right.pop();
}
}
}
}
void print_val()
{
while (!left.empty()){
tmp.push(left.top());
left.pop();
}
while (!tmp.empty()){
std::cout << tmp.top();
tmp.pop();
}
while (!right.empty()){
std::cout << right.top();
right.pop();
}
}
int main()
{
input_faster();
input();
solve();
print_val();
return (0);
}
λ¬Έμμ΄μμ 컀μλ₯Ό μ΄λνκ³ μ€κ°μ λ¬Έμλ₯Ό μ½μ νλ κ³Όμ μ μ½κ² λ§λ€κΈ° μν΄ stack λκ°λ₯Ό μ¬μ©νμμ΅λλ€.
νΈμμ λ μ€νμ μ΄λ¦μ left, right λΌκ³ νκ³
μ΄ν΄λ₯Ό μν΄ right μ€νμ μ’μ°λ₯Ό λ°μ νμ¬ κ·Έλ¦¬κ² μ΅λλ€!
κ°κ°μ μ°μ°μ κ·Έλ¦ΌμΌλ‘ νννλ©΄ μλμ κ°κ³