정화 코딩
[C++] 에디터 (백준 1406번) 본문
https://www.acmicpc.net/problem/1406
#include <iostream>
#include <list>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s;
cin >> s;
list<char> li(s.begin(), s.end());
int n;
cin >> n;
// 최초의 커서 위치는 문장의 맨 뒤
auto cur = li.end();
while (n--) {
char cmd;
cin >> cmd;
if (cmd == 'L') {
// 커서가 맨 앞이 아니라면 한 칸 앞으로 이동
if (cur != li.begin()) cur--;
} else if (cmd == 'D') {
// 커서가 맨 뒤가 아니라면 한 칸 뒤로 이동
if (cur != li.end()) cur++;
} else if (cmd == 'B') {
// 커서가 맨 앞이 아니라면 바로 앞 문자 하나 삭제
if (cur != li.begin()) li.erase(prev(cur));
} else if (cmd == 'P') {
// 커서 바로 앞에 문자 하나 추가
char c;
cin >> c;
li.insert(cur, c);
}
}
for (auto i = li.begin(); i != li.end(); i++) cout << *i;
cout << '\n';
}
(AC)
'PS' 카테고리의 다른 글
[C++] 행렬 제곱 (백준 10830번) (0) | 2025.01.23 |
---|---|
[C++] Φ² (백준 30885번) (0) | 2025.01.22 |
[C++] 버블버블 (백준 31870번) (0) | 2025.01.22 |
[C++] 악마 게임 (백준 16677번) (0) | 2025.01.22 |
[C++] D-Day (백준 1308번) (0) | 2025.01.08 |
Comments