Baekjoon

Baekjoon 5430번 AC

ppwag 2020. 8. 28. 00:44

문제

https://www.acmicpc.net/problem/5430

걸린 시간

01 : 34 : 58

풀이

C++

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

string ac(string p, deque<string>& dq){
    bool reverse = false;
    for(int i = 0; i < p.size(); i++)
        if(p[i] == 'R')
            reverse = !reverse;
        else if(p[i] == 'D')
            if(!reverse)
                if(!dq.empty())
                    dq.pop_front();
                else
                    return "error";
            else
                if(!dq.empty())
                    dq.pop_back();
                else
                    return "error";
    string ans;
    ans.push_back('[');
    if(dq.size() != 0){
        if(!reverse){
            for(int i = 0; i < dq.size()-1; i++){
                ans += dq[i];
                ans.push_back(',');
            }
            ans += dq[dq.size()-1];
        }
        else{
            for(int i = dq.size()-1; i > 0; i--){
                ans += dq[i];
                ans.push_back(',');
            }
            ans += dq[0];
        }
    }
    ans.push_back(']');
    return ans;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int tc;
    cin >> tc;
    while(tc--){
        string p; // 수행할 함수
        cin >> p;
        int n; // 수의 개수
        cin >> n;
        string x; // 배열에 들어있는 수
        cin >> x;
        deque<string> dq;
        string tmp;
        for(int i = 0; i < x.size(); i++){
            if(x[i] == ','){
                dq.push_back(tmp);
                tmp.clear();
            }
            else if(x[i] == '[' or x[i] == ']')
                continue;
            else
                tmp.push_back(x[i]);
        }
        if(tmp.size() != 0)
            dq.push_back(tmp);
        // 함수 수행
        cout << ac(p, dq) << "\n";
    }
    return 0;
}

문제의 입출력 형태가 정말 귀찮게 주어진다.

자료형을 전체적으로 3번 넘게 바꾸어가며 오류와 씨름을 한시간 정도 한 것 같다.

'Baekjoon' 카테고리의 다른 글

Baekjoon 1676번 팩토리얼 0의 개수  (0) 2020.08.28
Baekjoon 1780번 종이의 개수  (0) 2020.08.28
Baekjoon 1541번 잃어버린 괄호  (0) 2020.08.27
Baekjoon 11286번 절댓값 힙  (0) 2020.08.27
Baekjoon 1992번 쿼드트리  (0) 2020.08.27

댓글