[백준] 5397번 키로거 (리스트, c++)
728x90
반응형
https://www.acmicpc.net/problem/5397
커서 (현재 보고 있는 위치)에 동적으로 추가 삭제, 그리고 링크 이동을 연습하는 문제
#include <iostream>
#include <string>
#include <algorithm>
#include <list>
using namespace std;
int t;
string s;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> t;
while (t--) {
list<char> li;
cin >> s;
auto cursor = li.end();
for (auto c : s) {
if (c == '<') {
if (cursor != li.begin()) {
cursor--;
}
}
else if (c == '>') {
if (cursor != li.end()) {
cursor++;
}
}
else if (c == '-') {
if (cursor != li.begin()) {
cursor--;
cursor = li.erase(cursor);
}
}
else {
li.insert(cursor, c);
}
}
for (auto x : li) {
cout << x;
}
cout << "\n";
}
return 0;
}
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 1021번 회전하는 큐 (C++, DEQUE) (0) | 2021.10.05 |
---|---|
[백준] 6198번 옥상 정원 꾸미기 (stack, c++) (0) | 2021.10.05 |
[백준] 3273번 두 수의 합 (배열, 포인터 c++) (0) | 2021.09.24 |
[백준] 1919번 애너그램 만들기 (배열, C++) (0) | 2021.09.24 |
1475번 방번호 (C++) (0) | 2021.09.24 |
TAGS.