728x90

와 진짜 어렵다.

처음에 vector를 이용하여 Reverse해서 했다. 틀렸다. 시간 초과
오 그러면 자료구조사용하지 말고 string만 문자열로만 풀어볼까! 물론 reverse를 사용했다. 시간 초과

시간 초과~~ revrse때문이다. 란 생각을 했다.
revrser를 대신할 수 있는 것은 deque..

deque를 이용하여 출력했는데 답이 틀린다. 어..? 왜지 구렁텅이로 빠져간다.

www.acmicpc.net/board/view/25456

 

글 읽기 - ★☆★☆★ [필독] AC FAQ ★☆★☆★

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net

질문 게시판에 보면

  • 빈 배열은 []로 출력해야 합니다. 아무것도 출력하지 않거나, error를 출력하거나, 무조건 원소를 하나 출력하고 시작하려고 하면 안 됩니다.

이 부분...!!!!

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

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T;
    cin >> T;

    while(T--){
        deque<int> dq;
        string ins, data;
        int dataNumber;
        bool isReverse = false, isError = false;
        cin >> ins >> dataNumber >> data;

        // 수를 덱에 집어 넣기
        string temp = "";
        for(int i=0; i<data.size(); i++){
            if(data[i] == '[') continue;
            else if( '0' <= data[i] && data[i] <= '9'){
                temp += data[i];
            } else if( (data[i] == ',' || data[i] == ']') && temp != "" ){
                dq.push_back(atoi(temp.c_str()));
                temp = "";
            }
        }
        
        // 명령어 따라 처리하기.
        for(int i=0; i<ins.size(); i++){
            if(ins[i] == 'R') isReverse = !isReverse;
            else if(ins[i] == 'D'){
                if(dq.empty()){
                    isError = true;
                    break;
                }
                if(isReverse) dq.pop_back();
                else dq.pop_front();
            }
        }

        // 출력하기
        if(isError){
            cout << "error\n";
        } else if(dq.empty()){
            cout << "[]\n";
        } else if(isReverse){ // 거꾸로
            cout << "[";
            while(dq.size()>1){
                cout << dq.back() << ",";
                dq.pop_back();
            }
            cout << dq.back() << "]\n";
        } else{
            cout << "[";
            while(dq.size()>1){
                cout << dq.front() << ",";
                dq.pop_front();
            }
            cout << dq.front() << "]\n";
        }

    }
}

 

진짜 어렵ㄷ ㅜ

반응형

+ Recent posts