- ์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
- ๋ฐฐ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ ์ถ๊ฐ, ์ญ์ ์ ์๊ฐ๋ณต์ก๋๋ O(N)์ด ๊ฑธ๋ฆฌ๋ ๋ฐ๋ฉด, ๋งํฌ๋ ๋ฆฌ์คํธ ๊ฒฝ์ฐ O(1)์
๋๋ค.
- ์ด ๋ฌธ์ ๋ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฉ์ดํด์ผ ๋ ํธํ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
#include <iostream>
#include <list>
#include <string>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin>>s;
list<char> mylist;
for(int i=0;i<s.size();i++){
mylist.push_back(s[i]);
}
list<char>::iterator it = mylist.end();
int num;
cin>>num;
for(int i=0;i<num;i++){
char op;
cin>>op;
if(op == 'L' && it != mylist.begin()){
it--;
}
else if(op == 'D' && it != mylist.end()){
it++;
}
else if(op == 'B' && it != mylist.begin()){
it--;
it = mylist.erase(it);
}else if(op == 'P'){
char p;
cin>>p;
mylist.insert(it, p);
}
}
for(list<char>::iterator itr = mylist.begin(); itr!=mylist.end();itr++){
cout<<*itr;
}
}
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.