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 | #include <cstdio> using namespace std; int max( int a, int b) { return a>b ? a:b;} int main() { for ( int i=0; i<10; ++i) { int N; scanf ( "%d" ,&N); int B_height[1001]; int sum=0; for ( int j=0; j<N; j++) scanf ( "%d" ,&B_height[j]); for ( int j=2; j<(N-2); j++) { if (B_height[j]>max(B_height[j-2],B_height[j-1]) && B_height[j]>max(B_height[j+1],B_height[j+2] )) { int M=max(max(B_height[j-2],B_height[j-1]),max(B_height[j+1],B_height[j+2])); sum=sum+B_height[j]-M; } } printf ( "#%d %d\n" ,i+1,sum); } } |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
171031_sum (0) | 2017.10.31 |
---|---|
171030_flatten (0) | 2017.10.30 |
171030_간단한 369 게임 (0) | 2017.10.30 |
171028_파리 퇴치 (0) | 2017.10.28 |
171028_초심자의 회문검사 (0) | 2017.10.28 |