ゆめさくエンジニア研究所
配列問題 03入門

配列の最大値

並んだ整数の中から一番大きい数を出す。途中の結果を変数に持ち続ける、という繰り返しの基本を練習します。

問題

標準入力の 1 行目に整数の個数 n、2 行目にその数だけの整数が届きます。2 行目の数と数の間には、半角の空白がちょうど 1 つずつ入ります。その中で一番大きい数を 1 行で出してください。

  • n は 1 以上 100 以下です
  • 並ぶ整数は、どれも -1000 以上 1000 以下です
  • 最大値を求める組み込みの道具 (Python の max()、JavaScript の Math.max()) を使わずに書いてみてください

入力と出力の例

例 1

入力

5
3 9 2 7 4

出力

9

例 2

全部が負の数でも、一番大きいのは 0 に一番近い数です。

入力

3
-5 -2 -8

出力

-2

ヒント

ヒント 1

「いままで見た中で一番大きい数」を 1 つの変数に持ち、数を 1 つずつ見て、それより大きければ置き換えます。

ヒント 2

その変数の最初の値を 0 にすると、例 2 で 0 が出てしまいます。最初の値には、並びの先頭の数を入れます。

ここから解答です。先に自分で書いてみてから読むと、身につきやすくなります。

解答例

Python

Python

n = int(input())
parts = input().split()
nums = list(map(int, parts))
largest = nums[0]
for x in nums:
    if x > largest:
        largest = x
print(largest)

JavaScript

Node.js で動かす形です。

JavaScript

const lines = require("fs")
  .readFileSync(0, "utf8")
  .trim()
  .split("\n");
const nums = lines[1]
  .split(" ")
  .map(Number);
let largest = nums[0];
for (const x of nums) {
  if (x > largest) {
    largest = x;
  }
}
console.log(largest);

解説

この問題の要は、ヒント 2 の最初の値です。0 から始めると、全部が負の数のときに、並びに無い 0 が答えになってしまいます。先頭の数から始めれば、どんな並びでも正しく動きます。

2 行目は、空白で分けてから 1 つずつ整数に変えます。Python では split() と map(int, parts)、JavaScript では split(" ") と map(Number) が、その役目です。

1 行目の n は、この書き方では使いません。言語によっては個数を先に知る必要があるので、入力に付いています。

数を 1 回ずつ見るので、手間は個数に比例します。組み込みの max() も中では同じことをしています。仕組みが分かったら、実務では max(nums) と書いて構いません。

解答例を動かした版 Python 3.14.7Node.js 24.3.0確認日 2026年10月17日

練習問題の一覧へ戻る