danbibibi
article thumbnail
Published 2022. 12. 20. 18:45
BOJ 5430번: AC 문제 풀이/백준

문제

문제 바로가기> BOJ 5430번: AC

 

5430번: AC

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

www.acmicpc.net

 

풀이

덱에 들어갈 숫자의 길이가 1 이상일 수 있다. (0<x<101 이므로)

잘못 파싱해서 문제를 틀렸었다. 또, 이 밖에도 처리를 잘못해주면 틀릴 수 있으니, 문제를 잘 읽고 처리를 정확히 해줄 필요가 있다.

 

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

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int T; cin >> T;
    
    while(T--){
        string p; cin >> p;
        int size; cin >> size;
        string arr; cin >> arr;

        deque<int> dq;
        string num = "";
        for(int i=1; i<arr.size(); i++){
            if(arr[i]==']' || arr[i] == ',') {
                if(num == "") continue;
                dq.push_back(stoi(num));
                num = "";
            }
            else num+=arr[i];
        }
        
        bool isfront = true; // 덱 방향이 앞부터 시작인지
        bool iserror = false; // error를 출력해야하는지
        for(int i=0; i<p.size(); i++){
            if(p[i] == 'R') isfront = !isfront;
            else if(p[i] == 'D'){
                if(size == 0){
                    iserror = true;
                    break;
                }
                if(isfront) dq.pop_front(); 
                else dq.pop_back();
                size--;
            }
        }

        if(iserror) cout << "error" << "\n";
        else{
            cout << "[";
            if(isfront){
                while(size--){
                    if(size > 0) cout << dq.front() << ",";
                    else  cout << dq.front();
                    dq.pop_front();
                }
            }
            else{
                while(size--){
                    if(size > 0) cout << dq.back() << ",";
                    else  cout << dq.back();
                    dq.pop_back();
                }
            }
            cout << "]\n";
        }
    }
}

'문제 풀이 > 백준' 카테고리의 다른 글

BOJ 1253번: 좋다  (0) 2022.12.23
BOJ 2887번: 행성 터널  (1) 2022.12.22
BOJ 13549번: 숨바꼭질 3  (0) 2022.12.14
BOJ 1697번: 숨바꼭질  (0) 2022.12.13
BOJ 2294번: 동전 2  (0) 2022.12.09
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로