본문 바로가기

BOJ

[백준] 1406번 에디터 C++

#include <bits/stdc++.h>

using namespace std;


int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    string data;
    char imruk;
    int num;
    list<char> lis;
    
    cin >> data;
    for (auto a : data)
        lis.push_back(a);
    auto cursor = lis.end();
    cin >> num;
    while (num--) {
        cin >> imruk;
        if (imruk == 'P') {
            char special;
            cin >> special;
            lis.insert(cursor, special);
        }
        else if (imruk == 'L') {
            if (cursor != lis.begin()) {
                cursor--;
            }
        }
        else if (imruk == 'D') {
            if (cursor != lis.end()) {
                cursor++;
            }
        }
        else if (imruk == 'B') {
            if (cursor != lis.begin()) {
                cursor--;
                cursor = lis.erase(cursor);
            }

        }
    }
    for (auto c : lis) {
        cout << c;
    }
}

'BOJ' 카테고리의 다른 글

[백준] 10845번 큐 c++  (0) 2020.04.23
[백준] 10828번 스택 c++  (0) 2020.04.23
[백준] 1919번 애너그램 만들기 c++  (0) 2020.04.21
[백준] 11328번 Strfry C++  (0) 2020.04.21
[백준] 1475번 방 번호 c++  (0) 2020.04.21