쿼드 트리 뒤집기 문제입니다. stl을없이 구현을 시도하였으나...

  • cas11
    cas11

    stl 없이 구현하는 연습 중이라 코드가 복잡해 보일 수 있어요..
    딱히 고려할 예외가 떠오르지 않습니다. 예제는 맞는데 오류로 뜨네요... 어느부분이 오류를 만드는지 혹시 보이는지 궁급합니다!

    ///////////////

    #include <iostream>
    using namespace std;
    
    char cv[1001];
    char sol[1001];
    int n;
    void strCpy1(char des[], char src[]) {
        int i;
        for (i = 0;; i++) {
            if (src[i] == '\0') break;
            des[i] = src[i];
        }
        des[i] = '\0';
    }
    
    void strCpy2(char des[], char src[], int& num) {
        int i;
        for (i = 0;; i++) {
            if (src[i] == '\0') break;
            des[num++] = src[i];    
        }
        des[num] = '\0';
    }
    
    char* solve(int& t) {
        char pivot = cv[t];
        char tmp[1001];
        for (int i = 0; i < 1001; i++) tmp[i] = '\0';
        ++t;
    
        if (pivot == 'b' || pivot == 'w') {
            tmp[0] = pivot;
            return tmp;
        }
        char site[4][1001];
        strCpy1(site[2], solve(t));
        strCpy1(site[3], solve(t));
        strCpy1(site[0], solve(t));
        strCpy1(site[1], solve(t));
        tmp[0] = 'x';
        int num = 1;
        for (int i = 0; i < 4; i++)
            strCpy2(tmp, site[i], num);
        return tmp;
    }
    
    int main() {
        int tc;
        cin >> tc;
        while (tc--) {
            cin >> cv;
            int a = 0;
            strCpy1(sol, solve(a));
            for (int i = 0; sol[i] != '\0'; i++) cout << sol[i];
            cout << endl;
        }   
    }
    


    6년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.