튜토리얼의 LECTURE 문제 어디서 틀렸는지 모르겠습니다

  • arbc139
    arbc139

    왠만한 케이스에서 돌아가는거 같은데
    어딜 손봐야할지 모르겠네요 ㅠㅠㅠㅠㅠ

    LECTURE

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int minIndex(int arr[], int first, int last);
    
    void sortStr(char str[], int arr[], int arrSize);
    
    int main()
    {
        int T;
        cin >> T;
    
        char str[1000]={NULL};
        int token_num;
    
        while(T--)
        {
            cin >> str;
            if(strlen(str)%2 != 0)
                exit(0);
            token_num = strlen(str)/2;
    
            int index=0;
            int* sort = new int[token_num];
    
            for(int i=0; i!=token_num; i++)
            {
                sort[i] = ((int)str[index])*10 + (int)str[index+1];
                index += 2;
            }
    
            sortStr(str, sort, token_num);
    
            cout << str << endl;
        }
        return 0;
    }
    
    int minIndex(int arr[], int first, int last)
    {
        int index=first;
        int min=arr[first];
    
        for(int i=first; i!=last+1; i++)
        {
            if(min > arr[i])
            {
                min = arr[i];
                index = i;
            }
        }
    
        return index;
    }
    
    void sortStr(char str[], int arr[], int arrSize)
    {
        int temp;
        int temp_index;
    
        char temp1, temp2;
    
        for(int i=0; i!=arrSize; i++)
        {
            temp = arr[i];
            temp_index = minIndex(arr, i, arrSize-1);
            arr[i] = arr[temp_index];
            arr[temp_index] = temp;
    
            temp1 = str[2*i];
            temp2 = str[2*i+1];
            str[2*i] = str[temp_index*2];
            str[2*i+1] = str[temp_index*2+1];
            str[temp_index*2] = temp1;
            str[temp_index*2+1] = temp2;
        }
    }
    

    11년 전
2개의 댓글이 있습니다.
  • VOCList
    VOCList

    1
    azba

    위 케이스 답이 잘 안나오는 것 같네요.
    그리고 스트링이 최대 1000자까지 들어오면 마지막에 들어올 널 문자를 생각해서 str배열은 1001개를 잡아줘야 할 것 ㅓ같습니다.


    11년 전 link
  • arbc139
    arbc139

    @VOCList 해결했네요! 고맙습니다!


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