
#include <iostream>
#include <list>
using namespace std;
int main(int argc, char **argv){
string str; int M;
list<char> l;
list<char>::iterator cursor;
cin >> str;
scanf("%d", &M);
for(int i=0; i<str.size(); i++){
l.push_back(str.at(i));
}
cursor = l.end();
for(int i=0; i<M; i++){
char c;
cin >> c;
if(c=='L'){
if(cursor!=l.begin()){
cursor--;
}
} else if(c=='D'){
if(cursor!=l.end()){
cursor++;
}
} else if(c=='B'){
if(cursor!=l.begin()){
cursor--;
cursor = l.erase(cursor);
}
} else if(c=='P'){
char x;
cin >> x;
l.insert(cursor,x);
}
}
for (cursor = l.begin(); cursor!=l.end(); cursor++) {
cout << *cursor;
}
return 0;
}
오늘의 키포인트
- 연결 리스트 STL 사용 연습용 문제. 자세한건 주석에 작성하였다.