코드포스(CodeForce)
Educational Codeforces Round 32 - A. Local Extrema
cepiloth
2018. 8. 17. 18:17
반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 접근
10분 만에 클리어 허허허허 기적임.
주어진 정수에서 양쪽에 값이 현재 값보다 모두 클때 maxium ++
주어진 정수에서 양쪽에 값이 현재 값보다 모두 작을때 minium ++
3. 코드
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 | #include <iostream> #include <vector> using namespace std; bool isMaxium(int left, int current, int right) { return (current > left) && (current > right); } bool isMinium(int left, int current, int right) { return (current < left) && (current < right); } bool isExtremum(int left, int current, int right) { return isMaxium(left, current, right) || isMinium(left, current, right); } int main() { int n; cin >> n; vector<int> arr(n); for (int i = 0; i<n; i++) cin >> arr[i]; int count = 0; for (int i = 1; i < arr.size() -1; i++) { bool check = isExtremum(arr[i - 1], arr[i], arr[i + 1]); if (check) { count++; } } cout << count << endl; return 0; } | cs |
반응형