본문 바로가기

[백준] 1406 에디터

@cayman0312025. 12. 23. 11:25

 

풀이

#include <bits/stdc++.h>
using namespace std;


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int n;
    cin >> n;

    for (int i = 0; i < n; i++) {
        list<char> l = {};
        auto p = l.begin();

        string s;
        cin >> s;

        for (auto c:s) {
            if (c == '<') {
                if (p != l.begin()) p--;
            } else if (c == '>') {
                if (p != l.end()) p++;
            } else if (c == '-') {
                if (p != l.begin()) {
                    p--;
                    p = l.erase(p);
                }
            } else {
                l.insert(p, c);
            }
        }

        for (auto a:l) cout << a;
        cout << "\n";
    }

    return 0;
}

 

데이터의 삽입과 삭제가 빈번하기 때문에 리스트를 활용하였다.

C++에는 STL에 연결리스트가 존재하기 때문에 그것을 활용하여 간단하게 구현할 수 있었다.

'Memo > PS' 카테고리의 다른 글

[백준] 1316 그룹 단어 체커  (0) 2026.01.01
[백준] 2941 크로아티아 알파벳  (0) 2025.12.31
[백준] 1919 애너그램 만들기  (0) 2025.12.21
[백준] 11328 Strfry  (0) 2025.12.19
[백준] 10807 개수 세기  (0) 2025.12.18
cayman031
@cayman031 :: 그누로그

목차