
풀이
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; i++) {
list<char> l = {};
auto p = l.begin();
string s;
cin >> s;
for (auto c:s) {
if (c == '<') {
if (p != l.begin()) p--;
} else if (c == '>') {
if (p != l.end()) p++;
} else if (c == '-') {
if (p != l.begin()) {
p--;
p = l.erase(p);
}
} else {
l.insert(p, c);
}
}
for (auto a:l) cout << a;
cout << "\n";
}
return 0;
}
데이터의 삽입과 삭제가 빈번하기 때문에 리스트를 활용하였다.
C++에는 STL에 연결리스트가 존재하기 때문에 그것을 활용하여 간단하게 구현할 수 있었다.
'Memo > PS' 카테고리의 다른 글
| [백준] 1316 그룹 단어 체커 (0) | 2026.01.01 |
|---|---|
| [백준] 2941 크로아티아 알파벳 (0) | 2025.12.31 |
| [백준] 1919 애너그램 만들기 (0) | 2025.12.21 |
| [백준] 11328 Strfry (0) | 2025.12.19 |
| [백준] 10807 개수 세기 (0) | 2025.12.18 |