코드포스(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

반응형