ID: DECODE 문제 WA뜨는데 소스좀 봐주세요.

  • boykyd
    boykyd

    아래는 제가 짠 소스인데요.

    입력된 코드를 2차원으로, 암호를 풀기위한 규칙에 따라
    코드를 재배열 한 후에 재배열된 코드를 5개씩 끊어서 암호를 풀었는데요.
    WA가뜨네요.
    뭐가 문제일까요?

    혹시 이 문제 AC받으신분 코드좀 공유해 주시면 안될까요?

    #include

    int main()
    {

    int N;
    int r;  
    int c; 
    int d;
    
    int left, top, bottom, right;
    
    
    int x, y;
    int i;
    
    char code[400];
    char sorted_code[400];
    int code_length;
    
    int base;
    int decode;
    int str_idx;
    
    
    char msg[100];
    
    scanf("%d", &N);
    
    for(i=0; i<N; i++)
    {
        scanf("%d", &r);
        scanf("%d", &c);
        scanf("%s", code);
    
        left=0;
        right=c;
        top=0;
        bottom=r;
    
        code_length=0;
        while(top<bottom && left<right)
        {
            for(d=0; d<4; d++)
            {
                if(d==0)
                {
                    for(x=left; x<right; x++)
                        sorted_code[code_length++]=code[top*c+x];
    
                    top++;
                }
                else if(d==1)
                {
                    for(y=top; y<bottom; y++)
                        sorted_code[code_length++]=code[y*c+(right-1)];
    
                    right--;
                }
                else if(d==2)
                {
                    for(x=right-1; x>=left; x--)
                        sorted_code[code_length++]=code[(bottom-1)*c+x];
    
                    bottom--;
                }
                else{
                    for(y=bottom-1; y>=top; y--)
                        sorted_code[code_length++]=code[y*c+left];
    
                    left++;
                }
            }//end for loop
        }//end while loop
    
        base=16;
        decode=0;
        str_idx=0;
        for(x=0; x<=code_length; x++)
        {
            if(base==0)
            {
                if(decode==0) msg[str_idx++]=' ';
                else msg[str_idx++]=decode+'A'-1;
    
                base=16;
                decode=0;
            }
    
            decode=decode+(sorted_code[x]-'0')*base;
            base=base/2;
        }
    
        msg[str_idx]='\0';
        printf("%d %s\n",i+1, msg);
    }
    
    return 0;

    }//end of main


    12년 전
3개의 댓글이 있습니다.
  • Unused
    Unused

    %s


    12년 전 link
  • Unused
    Unused

    아 잘못봤네요 죄송합니다.


    12년 전 link
  • boykyd
    boykyd

    Decode 문제 AC받으셨네요. 소스좀 볼 수 있을까요?


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