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

  • User Avatar
    cas11

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

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

    ~~~ c++
    #include
    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;
    }

    }
    ~~~


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