2026年 共通テスト情報Ⅰ 第3問 解説|文化祭のゲーム待ち時間シミュレーション(関数「最大値」と条件付きの繰り返し)

公開 2026年11月8日

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

正解と配点

設問解答記号正解配点
問1ア・イ・ウ9・2・4すべて正解で3点3
問1エ③1
問1オ⓪1
問2カ・キ①・②順序は問わない。各2点4
問2ク⑤2
問2ケ②2
問2コ②2
問3サ③2
問3シ②2
問3ス⓪2
問3セ②2
問3ソ52

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

第3問は、共通テスト用プログラム表記で書かれたプログラムを読み、空欄を埋める問題です。題材は「文化祭で展示するゲームの待ち時間」。来訪者が順番に1人ずつゲームを体験するとき、体験時間を変えると待ち時間がどう変わるかを調べる、シミュレーションの問題でした。

前年の第3問より、プログラムの考え方そのものはシンプルです。そのぶん、問1で手計算した規則をそのままプログラムに置き換えられるか、問3で繰り返しの条件と初期化の位置を正しく考えられるかが問われました。

問題の設定

問1 待ち時間の求め方(ア〜オ)

場面: 図1は、縦軸に来訪者(到着順)、横軸に時刻(0〜20分)をとり、体験時間と待ち時間を矢印で表した図です。3人目までが描かれていました。

ア・イ・ウ:表1の空欄

正解:ア 9 イ 2 ウ 4

6人目まで、同じ考え方で表を完成させます(太字が空欄・“?”で隠されていた部分)。

来訪者 到着時刻 開始時刻 終了時刻 待ち時間
1人目 0 0 3 0
2人目 3 3 6 0
3人目 4 6 9(ア) 2
4人目 10 10 13 0
5人目 11 13 16 2(イ)
6人目 12 16 19 4(ウ)

4人目は10分に到着し、3人目は9分に終わっているので待ちません。5人目は11分に着きますが4人目が13分まで体験中なので2分待ち、6人目は12分に着いて5人目が終わる16分まで4分待ちます。

エ・オ:開始時刻の規則

問われたこと: 表1から確認した、2人目以降の規則の空欄。

選択肢は「本人の到着時刻/直前の来訪者の到着時刻/本人の終了時刻/直前の来訪者の終了時刻」でした。

正解:エ ③ 直前の来訪者の終了時刻 オ ⓪ 来訪者本人の到着時刻

前の人が終わった後に着いたなら、着いた時刻にすぐ始められます。前の人がまだ体験中なら、前の人が終わった時刻に始まります。つまり**開始時刻=「本人の到着時刻」と「直前の人の終了時刻」の遅い方(大きい方)**です。待ち時間は、開始時刻から到着時刻を引いた値です。

問2 待ち時間を表示するプログラム(カ〜コ)

プログラムの設定(図2):

正解:カ・キ ① Shuryou[i − 1] と ② Touchaku[i](順序は問わない) ク ⑤ Kaishi[i] + taiken ケ ② Kaishi[i] コ ② Touchaku[i]

問1の規則を、そのままプログラムに置き換えます。

規則 プログラム
開始時刻=本人の到着時刻と直前の人の終了時刻の大きい方 Kaishi[i] = 最大値(Shuryou[i − 1], Touchaku[i])
終了時刻=開始時刻+体験時間 Shuryou[i] = Kaishi[i] + taiken
待ち時間=開始時刻−到着時刻 Kaishi[i] − Touchaku[i]
(01) taiken = 3
(02) Touchaku = [0, 3, 4, 10, 11, 12]
(03) kyakusu = 要素数(Touchaku)
(04) Kaishi = [0, 0, 0, 0, 0, 0]
(05) Shuryou = [0, 0, 0, 0, 0, 0]
(06) Shuryou[1] = taiken
(07) i を 2 から kyakusu まで 1 ずつ増やしながら繰り返す:
(08) | Kaishi[i] = 最大値(Shuryou[i - 1], Touchaku[i])
(09) | Shuryou[i] = Kaishi[i] + taiken
(10) ⎿ 表示する(i, "人目の待ち時間:", Kaishi[i] - Touchaku[i], "分間")
空欄に正解を入れたプログラム(出典:大学入試センター「令和8年度大学入学共通テスト 本試験 情報Ⅰ」第3問 図2)

「直前の人」は添字 i − 1 で表します。カ・キの選択肢には Touchaku[i − 1](直前の人の到着時刻)や Shuryou[i](本人の終了時刻。まだ計算していない)もあるので、どの人の、どの時刻かを1つずつ確かめましょう。(06)行目で1人目の終了時刻を先に入れているのは、i = 2 のときに Shuryou[1] を使うためです。

問3 最長待ち時間が10分未満になる体験時間(サ〜ソ)

場面: Yさんは、来訪者を10分以上待たせたくないと考え、最長待ち時間(最も長く待つ人の待ち時間)が10分未満になる体験時間を調べるプログラム(図3)を作りました。

図3のプログラムの流れ:

サ・シ:最長待ち時間の計算と表示の条件

正解:サ ③ saichou シ ② saichou < 10

(12)行目は saichou = 最大値(saichou, Kaishi[i] − Touchaku[i]) です。「これまでの最大」と「i 番目の人の待ち時間」の大きい方で saichou を更新していくと、繰り返しが終わったときに saichou が全員の中の最大値になります。(10)行目で saichou を0に戻しているのは、体験時間ごとに最大値を求め直すためです。

表示するのは最長待ち時間が10分未満のときなので、条件は saichou < 10 です。実行結果(図4)は次のとおりでした。

体験時間 各来訪者の待ち時間(1〜6人目) 最長待ち時間 表示
1分 0, 0, 0, 0, 0, 0 0分 される
2分 0, 0, 1, 0, 1, 2 2分 される
3分 0, 0, 2, 0, 2, 4 4分 される
4分 0, 1, 4, 2, 5, 8 8分 される
5分 0, 2, 6, 5, 9, 13 13分 されない

体験時間が長くなるほど待ち時間は増えるので、5分で10分以上になったら、6分以上を調べる必要はありません。

ス・セ・ソ:10分以上になったら止めるように書き換える

書き換えの内容: (03)行目を「(taiken <= 15) and (saichou < 10) の間繰り返す:」に変え、「taiken = 1」と「saichou = 0」を(ス)の位置に、「taiken = taiken + 1」を(セ)の位置に入れる。

正解:ス ⓪(繰り返しの前) セ ②(繰り返しの末尾) ソ 5回

「〜の間繰り返す」は、繰り返しの先頭で条件を調べるので、最初に条件を調べる前に taiken と saichou に値が入っていなければなりません。だから2つの代入は**繰り返しの前(⓪)**です。saichou = 0 を入れておけば、最初の条件 saichou < 10 が真になり、繰り返しが始まります。

taiken = taiken + 1 は、1回分の計算と表示が終わってから次の体験時間に進むために、**繰り返しの末尾(②)**に置きます。先頭(①)に置くと、最初の計算が taiken = 2 から始まってしまいます。

(01) Touchaku = [0, 3, 4, 10, 11, 12]
(02) kyakusu = 要素数(Touchaku)
     taiken = 1
     saichou = 0
(03) (taiken <= 15) and (saichou < 10) の間繰り返す:
(04) | Kaishi = [0, 0, 0, 0, 0, 0]
     |   ……((05)〜(14)行目は変更なし)……
     ⎿ taiken = taiken + 1
書き換え後のプログラムの要点(出典:大学入試センター「令和8年度大学入学共通テスト 本試験 情報Ⅰ」第3問 図3をもとに、問題文の指示どおり書き換えたもの)

ソ: 書き換え後に配列 Kaishi を初期化する回数を数えます。

繰り返しの回 taiken 条件(調べる時点の saichou) 計算後の saichou
1回目 1 0 < 10 → 実行 0
2回目 2 0 < 10 → 実行 2
3回目 3 2 < 10 → 実行 4
4回目 4 4 < 10 → 実行 8
5回目 5 8 < 10 → 実行 13
6回目 6 13 < 10 は偽 → 終了 —

最長待ち時間が10分以上になる taiken = 5 の回も、計算してから初めて分かるので実行されます。初期化は 1〜5 の 5回です。「表示されたのは4回だから4回」としないように注意しましょう。

第3問のまとめ

参考資料

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

問題を準備しています…