点数の 合計と 最高点と最低点
- 入出力の基本
- 問題 01
- やさしい
- 目安 11 分
テストの
本番の
入力は
問題
ある
- 点数の合計
- 最高点
- 最低点
- 60 点以上の人数
入力の形式
N
a_1 a_2 ... a_N1 行目に
出力の形式
4 行を
制約
- 人数 N は、
1 以上 100000 以下の整数です - 点数 a_i は 0 以上 100 以下の整数です
入力と出力の例
例 1
5 人の
入力
5 70 85 40 100 60
出力
355 100 40 4
例 2
1 人だけの
入力
1 0
出力
0 0 0 0
例 3
ちょうど
入力
3 59 60 61
出力
180 61 59 2
ヒント
まだ開いていません
付箋は 3 枚。下の段ほど答えに近づきます
ヒント 2
ヒント 3答えに近い
全部の
先に
解答
点数を
Python
Python
n = int(input())
scores = list(map(int, input().split()))
total = 0
highest = scores[0]
lowest = scores[0]
passed = 0
for score in scores:
total += score
if score > highest:
highest = score
if score < lowest:
lowest = score
if score >= 60:
passed += 1
print(total)
print(highest)
print(lowest)
print(passed)JavaScript
JavaScript
const lines = require("fs").readFileSync(0, "utf8").split("\n");
const n = Number(lines[0]);
const scores = lines[1].split(" ").map(Number);
let total = 0;
let highest = scores[0];
let lowest = scores[0];
let passed = 0;
for (const score of scores) {
total += score;
if (score > highest) highest = score;
if (score < lowest) lowest = score;
if (score >= 60) passed += 1;
}
console.log(total);
console.log(highest);
console.log(lowest);
console.log(passed);計算量
時間は O(N) です。
よく ある間違い
- 点数の
行を input()で読んだまま 数に 直さず、 文字のまま 足してしまう。 "70" + "85"は 155 ではなく"7085"になります - 最低点の
最初の 値を 0 に して、 いつも 最低点が 0 に なってしまう。 最低点は 1 人目の 点数から 始めると、 人数が 1 人の ときも動きます - 60 点以上の
ところを >で書いてしまい、 ちょうど 60 点の 人を 数え落とす - 2 行目の
点数を 空白で 分けず、 1 つの 長い 文字として 扱ってしまう。 Python は split()、JavaScript は split(" ")で分けて、 数に直します
解答を動かした版 Python 3.12.14Node.js 22.23.4確認日 2026/10/31