반응형
문제 링크
코드
#include <bits/stdc++.h>
using namespace std;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
string s;
cin >> n;
while (n--) {
list<char> L;
auto t = L.begin();
cin >> s;
for (auto c : s) {
switch (c) {
case '<':
if (t != L.begin()) t--;
break;
case '>':
if (t != L.end()) t++;
break;
case '-':
if (t != L.begin()) {
t--; // 앞의 글자를 지움
t = L.erase(t); // erase - t가 가리키는 값을 제거, 그 다음 원소의 위치를 반환
}
break;
default:
L.insert(t, c);
}
}
for (auto i : L) cout << i;
cout << '\n';
}
}
설명
연결리스트를 이용한 풀이이다.
연결리스트의 iterator를 커서처럼 활용하면 된다.
(주의) 기록용으로 작성한 글입니다. 좋은 코드가 아닐 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/BOJ] 5598번 - 카이사르 암호 (C++) (0) | 2022.03.24 |
---|---|
[백준/BOJ] 5585번 - 거스름돈 (C++) (0) | 2022.03.24 |
[백준/BOJ] 5355번 - 화성 수학 (C++) (0) | 2022.03.24 |
[백준/BOJ] 4963번 - 섬의 개수 (C++) (0) | 2022.03.24 |
[백준/BOJ] 4949번 - 균형잡힌 세상 (C++) (0) | 2022.03.24 |
댓글