#include <iostream>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
int main(void) {
int n;
string s;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s;
stack<char> answer,cache;
for (int j = 0; j < s.length(); j++) {
if (s[j] == '<') {
if (!answer.empty()) {
cache.push(answer.top());
answer.pop();
}
}
else if (s[j] == '>') {
if (!cache.empty()) {
answer.push(cache.top());
cache.pop();
}
}
else if (s[j] == '-') {
if (!answer.empty())
answer.pop();
}
else
answer.push(s[j]);
}
while (!cache.empty()) {
answer.push(cache.top());
cache.pop();
}
string s;
while (!answer.empty()) {
s += answer.top();
answer.pop();
}
reverse(s.begin(), s.end());
cout << s << endl;
}
return 0;
}
'백준 알고리즘 > 시뮬레이션' 카테고리의 다른 글
백준 2979번 C++ (0) | 2019.08.29 |
---|---|
백준 11559번 C++ (0) | 2019.08.29 |
백준 2161번 C++ (0) | 2019.08.28 |
백준 5532번 C++ (0) | 2019.08.28 |
백준 2164번 C++ (0) | 2019.08.28 |