고나영 2018. 9. 18. 09:07

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh


1. 매 순간 비교만

  • 4 kb메모리
  • 2 ms실행시간
  • 516코드길이



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
#if 01
#pragma warning (disable:4996)
#include <stdio.h>
 
#define MAX (1000+5)
#define max(a,b)    ((a)>(b)?(a):(b))
int tc;
int N;
int a[MAX];
 
int main(void)
{
    int i;
    int count;
     
 
    for (tc = 1; tc <= 10; tc++) {
        scanf("%d"&N);
        //init
        count = 0;
        //input         
        for (i = 1; i <= N; i++) {
            scanf("%d"&a[i]);
        }
        //process
        for (i = 3; i <= N - 2; i++) {
            count += max(0, a[i] - max(max(a[i - 2], a[i - 1]), max(a[i + 1], a[i + 2])));
        }
        //output
        printf("#%d %d\n", tc, count);
    }
}
 
#endif
cs


2. 체크를 위해 배열을 만들었었음. 

  • 12,752 kb메모리
  • 39 ms실행시간
  • 782코드길이


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
#if 01
#pragma warning (disable:4996)
#include <stdio.h>
 
bool a[1000 + 10][255 + 10];
 
int main(void)
{
    int tc;
    int N;
    int height;
    int count;
    int flag;
     
    int i, j, k;
     
    for (tc = 1; tc <= 10; tc++)
    {
        scanf("%d"&N);
        //init
        count = 0;
        flag = 0;
        for (i = 1; i <= N; i++) {
            for (j = 1; j <= 255; j++) {
                a[i][j] = 0;
            }
        }
        //input
        for (i = 1; i <= N; i++) {
            scanf("%d"&height);
            for (j = 1; j <= height; j++) {
                a[i][j] = 1;
            }
        }
        //process
        for (i = 1; i <= N; i++)
        {
            for (j = 1; a[i][j] != 0; j++)
            {
                flag = 0;
                for (k = -2; k <= 2; k++) {
                    if (k == 0continue;
                    if (a[i + k][j] == 1) flag = 1;
                }
                if (flag == 0) count++;
            }
        }
        //output
        printf("#%d %d\n", tc, count);      
    }
#endif
cs