๋ฌธ์
์ฝ๋
#include <iostream>
#include <list>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin>>n;
while(n--){
list<char>li;
auto it = li.begin();
string s; cin>>s;
for(char c: s){
if(c=='>'){
if(it!=li.end()) it++;
}
else if(c=='<'){
if(it!=li.begin()) it--;
}
else if(c=='-'){
if(it!=li.begin()){
it--;
it=li.erase(it);
}
}
else li.insert(it, c);
}
for(auto it=li.begin(); it!=li.end(); it++) cout<<*it;
cout<<'\n';
}
}
ํ์ด
๋ฌธ์ ์ดํด๋ ๊ฐ๋จํ๋ฐ ์ ๋ต๋ฅ ์ด ๋ฎ์๊ฑธ ์ง์ ํ์ด๋ณด๊ณ ์ฒด๊ฐํ์ต๋๋ค.
c++์ list์ ๋ํด์ ์กฐ๊ธ ์ฐพ์๋ดค์ต๋๋ค.
- c++์ list๋ ๋๋ธ ๋งํฌ๋๋ฆฌ์คํธ(doubly linked list)๋ก ๊ตฌํ๋์ด ์๋ค.
- push_front(), push_back(), pop_front(), pop_back() ๋ฉค๋ฒ ํจ์๋ฅผ ์ด์ฉํด์ list ์ ๋์์ ์ฝ์ , ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
- insert(), erase() ๋ฉค๋ฒ ํจ์๋ฅผ ํตํด์ ๋ ธ๋ ์ค๊ฐ์์๋ ์ฝ์ , ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
์ถ๊ฐ๋ก insert์ erase๋ ์๋์ ๊ฐ์ต๋๋ค.
lt.insert(iter, k)
- iter๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ ์์ k๋ฅผ ์ฝ์
ํฉ๋๋ค.
- ์ฝ์
ํ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator๋ฅผ ๋ฐํํฉ๋๋ค.
lt.erase(iter)
- iterator๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ์ญ์ ํฉ๋๋ค.
- ๋ฐํ๊ฐ์ ์ญ์ ํ ์์์ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator๋ฅผ ๋ฐํํฉ๋๋ค.
์ ๋ธ๋ก๊ทธ์ list container์ ๋ํด์ ์ ์ ๋ฆฌ๋์ด ์์ผ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 10546๋ฒ - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2022.06.19 |
---|---|
[๋ฐฑ์ค,c++] 5430๋ฒ - AC (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 18115๋ฒ - ์นด๋ ๋๊ธฐ (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 1918๋ฒ - ํ์ ํ๊ธฐ์ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 2493๋ฒ - ํ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 2800๋ฒ - ๊ดํธ ์ ๊ฑฐ (0) | 2022.06.03 |
๋๊ธ