/*
This problem looks difficult first, but actually it's very simple.
Just check if current index is higher than both two sides.
*/
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int myView(int n, vector<int> arr);
int main() {
int n,input;
vector<int> arr;
for(int i=0;i<10;i++) {
cin >> n;
for(int j=0;j<n;j++) {
cin >> input;
arr.push_back(input);
}
int result = myView(n,arr);
cout << "#" << i+1 << " " << result << endl;
arr.clear();
}
return 0;
}
int myView(int n, vector<int> arr) {
int leftMax, rightMax;
int differ;
int result = 0;
for(int i=2;i<n-2;i++) {
leftMax = max(arr[i-2],arr[i-1]);
rightMax = max(arr[i+1],arr[i+2]);
differ = arr[i] - max(leftMax,rightMax);
if(differ > 0) {
result += differ;
i += 2;
}
}
return result;
}
댓글 없음:
댓글 쓰기