けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

Chokudai SpeedRun 001 A - 最大値 (7Q)

 N 個の整数の最大値を求めるだけの問題!

問題概要

 N 個の整数  a_{0}, a_{1}, \dots, a_{N-1} の最大値を求めよ。

制約

  •  1 \le N \le 100

考えたこと

まず、 N 個の整数  a_{0}, a_{1}, \dots, a_{N-1} は配列として受け取るのがよいだろう。C++ であれば、vector<int> 型のデータとして受け取ることができる。

さて、これらの値の最大値を求めるための変数 res を用意しておこう。この res という名前の「チャンピオン」に対して、 N 個の「挑戦者」である整数  a_{0}, a_{1}, \dots, a_{N-1} が挑んでいき、「チャンピオンよりも大きな値をもつ挑戦者が現れれば、チャンピオンの値を更新する」というようにすればよい。具体的には、for 文を用いて、次のように実装できる。

for (int i = 0; i < N; i++) {
    res = max(res, a[i]);
}

最後に、変数 res の初期値について考えよう。res は、最初は極力小さな値にしておくのが望ましい。具体的には、整数  a_{0}, a_{1}, \dots, a_{N-1} の値よりも小さく設定しておきたい。ここでは res = 0 としておこう。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> a(N);
    for (int i = 0; i < N; i++) cin >> a[i];

    int res = 0;
    for (int i = 0; i < N; i++) res = max(res, a[i]);
    cout << res << endl;
}