본문 바로가기
카테고리 없음

1406 c++

by park_hama 2024. 8. 7.

c++ list 라이브러리를 사용하면 편하게 풀 수 있다.

그리고 iterator란 개념이 나왔는데 이는 그냥 위치를 가르키는 포인터라고 생각하면 된다.

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include<list>

using namespace std;


int main() {

    int n;
    list<char> nlist;
    list<char>::iterator cursor;
    char c;
    string init, cmd;

    cin >> init >> n;

    for (int i = 0; i < init.size(); i++) {
        nlist.push_back(init[i]);
    }

    cursor = nlist.end();

    for (int i = 0; i < n; i++) {
        cin >> cmd;

        if (cmd == "L" && cursor != nlist.begin()) {
            cursor--;
        }
        else if(cmd == "D"&& cursor != nlist.end()) {
            cursor++;
        }
        else if(cmd == "B" && cursor != nlist.begin()) {
            cursor--;
            cursor = nlist.erase(cursor);
        }
        else if(cmd == "P") {
            cin >> c;
            nlist.insert(cursor, c);
        }

    }

    for (char c : nlist) // for (element_type element : container) 앞은 컨테이너 요소 타입, 뒤는 순회할 컨테이너
        cout << c;


    return 0;
}