HackerRank/Algorithms

[HackerRank] Warmup > Compare the Tripets

ruming 2021. 8. 14. 03:21

배열 a와 b에 각각 세 개의 정수가 들어온다. 순서에 맞게 a와 b의 원소값을 비교해 큰 쪽이 1점을 가져간다.

 

int* compareTriplets(int a_count, int* a, int b_count, int* b, int* result_count) {
    *result_count = 2;
    int i;
    int *score = malloc(2*sizeof(int));
    score[0] = 0, score[1] = 0;
    for(i=0; i<3; i++){
        if(a[i] > b[i]){
            score[0]++;
        }else if(a[i] < b[i]){
            score[1]++;
        }
    }
    return score;
}

배열을 반환해야 하므로 점수를 저장한 score를 할당받았다.

a의 배열 값과 b의 배열 값을 각각 비교해 a 값이 크면 score[0]의 점수를 올리고 b 값이 크면 score[1]의 점수를 올린다.

배열 score를 반환해준다.

 

그냥 배열은 왜 반환이 안되는지 생각해봤는데 static을 붙여줘야 한다.

int* compareTriplets(int a_count, int* a, int b_count, int* b, int* result_count) {
    *result_count = 2;
    int i;
    static int score[2] = {0};
    for(i=0; i<3; i++){
        if(a[i] > b[i]){
            score[0]++;
        }else if(a[i] < b[i]){
            score[1]++;
        }
    }
    return score;
}