알고리즘/SW Expert Academy
1206 View
고나영
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 == 0) continue; if (a[i + k][j] == 1) flag = 1; } if (flag == 0) count++; } } //output printf("#%d %d\n", tc, count); } } #endif | cs |