출처: https://3months.tistory.com/307 [Deep Play]

백준/String

[BOJ] 5430 AC

코딩하는 랄뚜기 2021. 9. 6. 11:48

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

 

5430번: AC

각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.

www.acmicpc.net

string을 다루는 능력을 길러주는 문제이다. 나는 deque를 사용하여 R이 들어올 경우 flag을 사용하여 pop_front()를 할지 pop_back()을 할지 결정하였다. 주의 할 점은 입력받는 배열을 크기가 0인 경우에도 내 코드는 ""이 들어가기 때문에 예외 처리를 해줘야 한다는 것이다.

#include <iostream>
#include <deque>
#include <queue>
#include <string>
using namespace std;

int main(){
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(0);
    int T; cin>>T;
    while(T--){
        string command,input; int size;
        cin>>command>>size>>input;
        deque<string> dq;
        string tmp="";
        for(int i=0;i<input.size();i++){
            if('0'<=input[i]&&input[i]<='9') tmp+=input[i];
            if(input[i]==','||input[i]==']'){
                dq.push_back(tmp);
                tmp="";
            }
        }
        bool back=false;
        bool flag_e=false;
        for(int i=0;i<command.size();i++){
            if(command[i]=='R'){
                if(back) back=false;
                else back=true;
            }else{
                //입력받는 배열을 크기가 0일 경우 예외 처리를 해줘야 한다.
                if(dq.size()==0||dq.front()==""){
                    flag_e=true;
                    break;
                }
                if(back) dq.pop_back();
                else dq.pop_front();
            }
        }
        
        if(flag_e){
            cout<<"error\n";
        }else{
            cout<<'[';
            while(!dq.empty()){
                if(back){
                    cout<<dq.back();
                    dq.pop_back();
                }else{
                    cout<<dq.front();
                    dq.pop_front();
                }
                if(dq.size()!=0) cout<<',';
            }
            cout<<"]\n";
        }
        
    }
    return 0;
}

'백준 > String' 카테고리의 다른 글

[BOJ] 2154 수 이어 쓰기 3  (0) 2021.09.07
[BOJ] 1748 수 이어 쓰기 1  (0) 2021.09.07
[BOJ] 1515 수 이어 쓰기  (0) 2021.09.06
[BOJ] 1316 그룹 단어 체커  (0) 2021.09.06
[BOJ] 22232 가희와 파일 탐색기  (0) 2021.08.30