公式

A - 山の頂上 / Mountain Summit 解説 by MMNMM


初心者の方へ

この問題は、配列などに \(A\) の値を読み込み、\(N-2\) 箇所の地点についてそれぞれ山頂の条件を満たすか判定することで解くことができます。

実装例は以下のようになります。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> A(N);
    for (int& a : A) {
        cin >> a;
    }

    int ans = 0;
    for (int i = 1; i < N - 1; ++i) { // 両端を除いた地点について
        if (A[i - 1] < A[i] && A[i] > A[i + 1]) { // 条件を満たしていたら
            ++ans; // カウントを進める
        }
    }
    cout << ans << endl;
    return 0;
}
N = int(input())
A = list(map(int, input().split()))

ans = 0
for i in range(1, N - 1): # 両端を除いた地点について
    if A[i - 1] < A[i] > A[i + 1]: # 条件を満たしていたら
        ans += 1 # カウントを進める

print(ans)

投稿日時:
最終更新: