* Computer Science/Project Euler

codeground 2번. 프로그래밍 경진대회

soicem 2016. 6. 2. 19:25
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
50
51
52
53
54
55
56
57
58
// 아래 기본 제공된 코드를 수정 또는 삭제하고 본인이 코드를 사용하셔도 됩니다.
#include <stdio.h>
#include <stdlib.h>
 
 
 
int cmp(const void *first, const void *second){
    return *(int*)second - *(int*)first;
}
 
int main(void) {
       /* 아래 freopen 함수는 input.txt를 read only 형식으로 열고, 표준입력(키보드) 대신 input.txt 로 부터 읽어오겠다는 의미의 코드입니다.
       만약 본인 PC 에서 테스트 할 때는, 입력값을 input.txt에 저장한 후 freopen 함수를 사용하면
          그 아래에서 scanf 함수를 사용하여 표준입력 대신 input.txt 파일로 부터 입력값을 읽어 올 수 있습니다.
          또한, 본인 PC에서 freopen 함수를 사용하지 않고 표준입력을 사용하여 테스트하셔도 무방합니다.
       단, Codeground 시스템에서 "제출하기" 할 때에는 반드시 freopen 함수를 지우거나 주석(//) 처리 하셔야만 합니다. */
    // freopen("input.txt", "r", stdin);
 
    
    int TC;
    int test_case;
    setbuf(stdout, NULL);
 
    scanf("%d", &TC);
    for(test_case = 1; test_case <= TC; test_case++) {
        // 이 부분에서 알고리즘 프로그램을 작성하십시오. 기본 제공된 코드를 수정 또는 삭제하고 본인이 코드를 사용하셔도 됩니다.
        int N, cnt, i, max, result = 0;
        int *sums;
        scanf("%d", &N);
        sums = (int*)malloc(sizeof(int)* N);
 
        for (i = 0; i<N; i++){
            scanf("%d", &sums[i]);
        }
        qsort(sums, N, sizeof(int), cmp);
        max = sums[0];
        for (i = 2; i <= N; i++)
            if (sums[i - 1]+> max)
                max = sums[i - 1]+i;
 
        /*for (i = 1; i<N; i++)
            for(cnt = 2; cnt<=N; cnt++)
                if (sums[i]+cnt == max)
                    result++;
        result +=1;*/  
        // 위의 코드는 시간에 걸린다. 1초 이상
        for(i = 0; i<N; i++)
            if(sums[i] + N >= max)
                result++;
        
        // 이 부분에서 정답을 출력하십시오.
        printf("Case #%d\n", test_case);
        printf("%d\n", result);
        
    }
 
    return 0;    // 정상종료 시 반드시 0을 리턴해야 합니다.
}
cs


'* Computer Science > Project Euler' 카테고리의 다른 글

project euler 3. problem  (0) 2016.07.13
project euler 2. problem  (0) 2016.07.12
project euler 1. problem  (0) 2016.07.11
codeground 3. 시험 공부  (0) 2016.06.02
1. sorting  (0) 2016.05.22