MEETING 오류

  • skylife927
    skylife927

    이번에는 어떤 곳에서 오류가 났는지..
    어떤 경계값을 처리안해줬는지

    1. 버블소트를 통해 정렬.
    2. 각 자리수에있는 차이(절대값)을 sum을 통해 합함.
    3. 합의 값을 출력. 오류네요@_@
    #include <iostream>
    
    using namespace std;
    
    #define MAX_N 10000
    
    
    void bubbleSort(int* arr, int N){
        for(int i=1; i<=N; i++){
            for(int j=1; j<=N; j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j+1] = temp;
                }
            }
        }
    }
    
    int abs1(int a){
        if(a<0) return a*(-1);
        else return a;
    }
    
    int main(int argc, char** argv)
    {
        int test_case;
        int T;
    
        cin >> T;
        for(test_case = 0; test_case < T; test_case++)
        {
            int N;
            cin>>N;
            int m[MAX_N];
            int w[MAX_N];
    
            for(int i=1; i<=N; i++)
                cin>>m[i];
            for(int i=1; i<=N; i++)
                cin>>w[i];
    
            // m을 정렬, w도 정렬
            bubbleSort(m, N);
            bubbleSort(w, N);
    
            //각 해당 열의 차이값을 더함
            int sum=0;
            for(int i=1; i<=N; i++){
                sum += abs1(m[i] - w[i]);
            }
            cout<<sum<<endl;
    
    
        }
    
        return 0;
    }
    

    8년 전
3개의 댓글이 있습니다.
  • SinAska
    SinAska

    버버블버블정버블정렬버블정렬을 그그렇그렇게 짯짜실짜실겁짜실겁니짜실겁니까?


    8년 전 link
  • skylife927
    skylife927

    죄송합니다. ㅠㅠ
    퀵소트로 다시 짜봤어용

    #include <iostream>
    
    using namespace std;
    
    #define MAX_N 10000
    
    
    void bubbleSort(int* arr, int N){
        for(int i=1; i<=N; i++){
            for(int j=1; j<=N; j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j+1] = temp;
                }
            }
        }
    }
    
    void swap(int a[], int left, int right){
        int temp = a[left];
        a[left] = a[right];
        a[right]  =temp;
    
    }
    
    void quickSort(int a[], int left, int right){
        int pivot, i, j;
        if(left<right){
            i = left, j = right +1, pivot = a[left];
            do
            {
                do
                i++;
                while(a[i] < pivot);
                do
                j--;
                while(a[j] > pivot);
                if(i<j) swap(a, i, j);
            }while(i<j);
            swap(a, left, j);
            quickSort(a, left, j-1);
            quickSort(a, j+1, right);
        }
    }
    
    int abs1(int a){
        if(a<0) return a*(-1);
        else return a;
    }
    
    int main(int argc, char** argv)
    {
        int test_case;
        int T;
    
        cin >> T;
        for(test_case = 0; test_case < T; test_case++)
        {
            int N;
            cin>>N;
            int m[MAX_N];
            int w[MAX_N];
    
            for(int i=0; i<N; i++)
                cin>>m[i];
            for(int i=0; i<N; i++)
                cin>>w[i];
    
            // m을 정렬, w도 정렬
            //bubbleSort(m, N);
            //bubbleSort(w, N);
            quickSort(m, 0, N-1);
            quickSort(w, 0, N-1);
    
            //각 해당 열의 차이값을 더함
            long long sum=0;
            for(int i=0; i<N; i++){
                sum += abs1(m[i] - w[i]);
            }
            cout<<sum<<endl;
    
    
        }
    
        return 0;
    }
    

    8년 전 link
  • skylife927
    skylife927

    통과했습니당~


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