본문 바로가기
코딩/cpp

[백준] 5430번

by 적막한숲 2025. 10. 7.

dequeue 쓰면 편하게 해결 가능

#include <iostream>
#include <deque>


int main() {
    int t;
    std::cin >> t;
    std::deque<int> v;
    for (int i = 0; i < t; i++) {
        std::string p;
        std::string _s;
        int n;
        std::cin >> p >> n;
        v.clear();
        std::cin >> _s;
        bool reading = false;
        int num = 0;
        for (char& _c : _s) {
            if (_c >= '0' && _c <= '9') {
                num = num * 10 + _c - '0';
                reading = true;
            } else if (reading) {
                v.push_back(num);
                num = 0;
                reading = false;
            }
        }
        if (reading) {
            v.push_back(num);
        }
        bool reversed = false;
        bool overflowed = false;
        for (char& _p : p) {
            if (_p == 'R') {
                reversed = !reversed;
            } else if (_p == 'D') {
                if (v.empty()) {
                    overflowed = true;
                    break;
                }
                if (!reversed) {
                    v.pop_front();
                } else {
                    v.pop_back();
                }
            }
        }
        if (overflowed) {
            std::cout << "error" << std::endl;
            continue;
        }
        if (v.empty()) {
            std::cout << "[]" << std::endl;
            continue;
        }
        if (reversed) {
            std::cout << "[";
            for (auto it = v.rbegin(); it != v.rend()-1; ++it) {
                std::cout << *it << ",";
            }
            std::cout << v.front() << "]" << std::endl;
        } else {
            std::cout << "[";
            for (auto it = v.begin(); it != v.end()-1; ++it) {
                std::cout << *it << ",";
            }
            std::cout << v.back() << "]" << std::endl;
        }
    }

    return 0;
}

'코딩 > cpp' 카테고리의 다른 글

[백준] 10026번  (0) 2025.10.08
[백준] 7576번  (0) 2025.10.07
[백준] 1931번  (0) 2025.10.07
[백준] 1074번  (0) 2025.10.07
[백준] 14940번  (0) 2025.10.07