2025年 共通テスト情報Ⅰ 第3問 解説|工芸品の担当割当てプログラム(配列の最小値と繰り返し)

公開 2026年11月7日

2025年(令和7年度)本試験「情報Ⅰ」第3問(25点)の解説です。問題冊子は大学入試センターの公式ページで公開されています。問題文を見なくても内容が分かるように、場面や条件を詳しく説明しています。

正解と配点

設問解答記号正解配点
問1ア21
問1イ21
問1ウ22
問1エ32
問1オ52
問2カ42
問2キ①3
問2ク12
問3ケ①2
問3コ④2
問3サ②3
問3シ⓪3

丸数字(②など)は選択肢の番号です。

第3問は、共通テスト用プログラム表記で書かれたプログラムを読み、空欄を埋める問題です。題材は「工芸品を製作する担当を、部員に順に割り当てる」作業でした。

問1で手作業の流れをつかんでおくと、問2・問3のプログラムが「その手作業をそのまま書いたもの」だと分かります。

場面と規則

工芸部では、文化祭に向けた合宿で9個の工芸品を部員3名で分担して作ります。製作日数は工芸品ごとに決まっていて、誰が作っても変わりません。

工芸品 1 2 3 4 5 6 7 8 9
製作日数 4 1 3 1 3 4 2 4 3

「空き」とは、その日に割り当てがないことです。例えば、1日目から4日間作業する部員は、5日目に空きになります。

問1 手作業で割り当てる(ア〜オ)

問題の図では、工芸品4まで割り当てた状態が示されていました。

正解:ア 2、イ 2(工芸品4は部員2が2日目に製作)/ウ 2、エ 3、オ 5(工芸品5は部員2が3〜5日目)

工芸品4まで割り当てた時点で、空きになる日は部員1が5日目、部員2が3日目、部員3が4日目です。最も早いのは部員2(3日目)なので、工芸品5(3日間)は部員2が3日目〜5日目に担当します。

全9品の割当て

同じ規則で最後まで割り当てると、次のようになります。問題のメール文面の最終行「工芸品9 … 部員1:7日目〜9日目」と一致することを確かめましょう。

工芸品 日数 割当て前の空き日(部員1, 2, 3) 担当 期間
1 4 1, 1, 1 部員1 1〜4日目
2 1 5, 1, 1 部員2 1〜1日目
3 3 5, 2, 1 部員3 1〜3日目
4 1 5, 2, 4 部員2 2〜2日目
5 3 5, 3, 4 部員2 3〜5日目
6 4 5, 6, 4 部員3 4〜7日目
7 2 5, 6, 8 部員1 5〜6日目
8 4 7, 6, 8 部員2 6〜9日目
9 3 7, 10, 8 部員1 7〜9日目

工芸品2では、部員2と部員3がどちらも1日目に空きです。規則により番号が小さい部員2が担当します。

問2 最も早く空きになる部員を探す(カ・キ・ク)

配列 Akibi: 各部員が空きになる日を入れた配列です。この問題では添字が1から始まると明記されていて、添字が部員の番号を表します。共通テスト用プログラム表記では、特に説明がなければ添字は0から始まるので、問題文の指定を必ず確認しましょう。

カ:工芸品4まで割り当てたときの Akibi[3]

正解:4

部員3は1〜3日目に工芸品3を作るので、4日目に空きになります。Akibi は [5, 3, 4] です。最小の要素は Akibi[2] = 3 なので、次は部員2が担当します(問1の結果と一致)。

キ:プログラムの条件

プログラムは、部員1を仮の担当(tantou = 1)とし、部員2から最後の部員まで順に比べて、より早く空く部員が見つかったら担当を入れ替えます。配列から最小値の位置を探す、典型的な処理です。

(01) Akibi = [5, 3, 4]
(02) buinsu = 3
(03) tantou = 1
(04) buin を 2 から buinsu まで 1 ずつ増やしながら繰り返す:
(05) | もし Akibi[buin] < Akibi[tantou] ならば:
(06) ⎿ ⎿ tantou = buin
(07) 表示する("次の工芸品の担当は部員", tantou, "です。")
空欄に正解を入れたプログラム(出典:大学入試センター「令和7年度大学入学共通テスト 本試験 情報Ⅰ」第3問 図4)

正解:① Akibi[buin] < Akibi[tantou]

ク:部員が5名のときに (06) 行目が実行される回数

条件: Akibi = [5, 6, 4, 4, 4]、buinsu = 5 で実行します。

正解:1回(「次の工芸品の担当は部員3です。」と表示される)

buin 比べる値 条件 tantou
(開始) — — 1
2 6 < 5(Akibi[1]) 成り立たない 1
3 4 < 5(Akibi[1]) 成り立つ → (06) 実行 3
4 4 < 4(Akibi[3]) 成り立たない 3
5 4 < 4(Akibi[3]) 成り立たない 3

部員3・4・5はどれも4日目に空きですが、「<」なので最初に見つかった部員3のまま変わりません。代入は1回だけです。

問3 全工芸品の割当て一覧を表示する(ケ・コ・サ・シ)

使う変数: 製作日数を工芸品の番号順に並べた配列 Nissu(添字は1から)、工芸品の数 kougeihinsu = 9、空き日を管理する配列 Akibi、部員数 buinsu = 3 です。最初はどの部員も1日目に空きなので、Akibi = [1, 1, 1] から始めます。(06)〜(09) 行目は問2のプログラムと同じ「担当を決める処理」です。

(01) Nissu = [4, 1, 3, 1, 3, 4, 2, 4, 3]
(02) kougeihinsu = 9
(03) Akibi = [1, 1, 1]
(04) buinsu = 3
(05) kougeihin を 1 から kougeihinsu まで 1 ずつ増やしながら繰り返す:
(06) | tantou = 1
(07) | buin を 2 から buinsu まで 1 ずつ増やしながら繰り返す:
(08) | | もし Akibi[buin] < Akibi[tantou] ならば:
(09) | ⎿ ⎿ tantou = buin
(10) | 表示する("工芸品", kougeihin, " … ", "部員", tantou, ":",
     |          Akibi[tantou], "日目~",
     |          Akibi[tantou] + Nissu[kougeihin] - 1, "日目")
(11) ⎿ Akibi[tantou] = Akibi[tantou] + Nissu[kougeihin]
空欄に正解を入れたプログラム(出典:大学入試センター「令和7年度大学入学共通テスト 本試験 情報Ⅰ」第3問 図5)

正解:ケ ① kougeihin/コ ④ kougeihinsu/サ ② Nissu[kougeihin] − 1/シ ⓪ Nissu[kougeihin]

ケ・コ:外側の繰り返し

工芸品1から工芸品9まで、1つずつ担当を決めるので、kougeihin を 1 から kougeihinsu まで繰り返します。(10) 行目の表示で kougeihin を使っていることもヒントになります。buinsu(部員数)まで繰り返すと、3個しか割り当てられません。

サ:終了日の計算

開始日は担当部員が空きになる日、Akibi[tantou] です。製作日数が n 日なら、終了日は開始日 + n − 1 です。例えば工芸品1は 1 + 4 − 1 = 4日目に終わります。ここで使う日数は、いま割り当てている工芸品の日数なので Nissu[kougeihin] です。Nissu[tantou] は「部員の番号番目の工芸品の日数」になってしまい、意味が合いません。

「− 1」を忘れて Nissu[kougeihin] にすると、工芸品1が「1日目〜5日目」と表示されてしまいます。

シ:空き日の更新

担当部員が次に空きになるのは、終了日の翌日、つまり開始日 + n です。工芸品1なら 1 + 4 = 5日目で、問題の「部員1は5日目に空き」と一致します。

実行の流れ

プログラムが実行されると、ループ1回ごとに Akibi は次のように変わります。上の「全9品の割当て」の表と同じ結果になります。

kougeihin Nissu[kougeihin] tantou 表示される期間 更新後の Akibi
1 4 1 1〜4日目 [5, 1, 1]
2 1 2 1〜1日目 [5, 2, 1]
3 3 3 1〜3日目 [5, 2, 4]
4 1 2 2〜2日目 [5, 3, 4]
5 3 2 3〜5日目 [5, 6, 4]
6 4 3 4〜7日目 [5, 6, 8]
7 2 1 5〜6日目 [7, 6, 8]
8 4 2 6〜9日目 [7, 10, 8]
9 3 1 7〜9日目 [10, 10, 8]

第3問のまとめ

参考資料

同じ分野のオリジナル問題で練習

問題を準備しています…