公式
A - 山の頂上 / Mountain Summit 解説
by
A - 山の頂上 / Mountain Summit 解説
by
MMNMM
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
この問題は、配列などに \(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)
投稿日時:
最終更新:
