본문으로 바로가기

문제>>



코드 >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
 
int Answer;
int compare(void *first, void *second){
    if(*(int*)first > *(int*)second)
        return 1;
    else if(*(int*)first < *(int*)second)
        return -1;
    else 
        return 0;
}
int main(void)
{
    int T, test_case;
    setbuf(stdout, NULL);
 
    scanf("%d"&T);
    for(test_case = 0; test_case < T; test_case++)
    {
        int N;
        scanf("%d"&N);
        
        int *arr = (int*)malloc(sizeof(int)*N);
        int i;
        Answer = 0;
        
        for(i=0; i<N; i++){
            scanf("%d"&arr[i]);
        }
        qsort(arr, N, sizeof(int), compare);
        
        Answer = arr[0];
        for(i=1; i<N; i++){
            if(i%2==1){
                Answer -= arr[i];
            }
            else{
                Answer += arr[i];
            }
        }
        
        printf("Case #%d\n", test_case+1);
                printf("%d\n", Answer);
        
    }
 
    return 0;//Your program should return 0 on normal termination.
}
cs



이것도 쉬운 문제 중 하나. 정렬은 시간초과 안걸리게 퀵소트로 해결했고 인덱스 번호에 따라서 연산을 다르게 하면 된다.