2026年 共通テスト「情報Ⅰ」大問3を徹底解説!

こんにちは!

今回のプログラミングラボニュースでは、先日行われた大学入学共通テスト「情報Ⅰ」、特にプログラミング分野の大問3について徹底解説していきます!

全体の問題は、プログラミング部の部長であるYさんが、文化祭でのゲーム体験の待ち時間について、昨年のデータを活用しながら今年の展示方法を検討する、というシナリオで構成されています。

それでは、一つ一つ詳しく見ていきます。

──────────────────

【問1】

◆ 出題ポイント
身近なシナリオを具体的にイメージできるか。
また、表と文章を関連付けて読み解けるかどうか。

体験時間が「1人につき3分」であること、そして来訪者本人の到着時刻と直前の来訪者の終了時刻との関係性が読み取れれば、解答は難しくない。

アイウを解くためには、自然とエオの理解も必要となるため、全体として良心的な問題。

──────────────────

【問2】

◆ 出題ポイント
問1で扱った表の数値を、変数や配列へ正しく落とし込めるかどうか。

◇ 変数
(01)taiken = 3(3で固定 ※問3で変更)
(03)kyakusu = 要素数(Touchaku)
※配列の要素数を返す len(Touchaku) のイメージ。実際は6なので、ここが分からなくても大きな問題はない。

◇ 配列
(02)Touchaku = [0, 3, 4, 10, 11, 12]
(04)Kaishi = [??????]
(05)Shuryou = [??????]

◇ 擬似的なfor文

(08)
Kaishi[i] = 最大値(Touchaku[i], Shuryou[i-1]

※問1の次の文章をそのまま式にしたもの。

「2人目以降の来訪者について、開始時刻は直前の来訪者の終了時刻より早く到着した場合には来訪者本人の到着時刻、それ以外の場合は直前の来訪者の終了時刻になる」

(09)終了時刻を求める
Shuryou[i]=Kaishi[i] + taiken
開始時刻に体験時間を足したものが終了時刻。

(10)待ち時間の表示
開始時刻は(8)で求められているため、来訪者本人の開始時刻から到着時刻を引けばよい。

──────────────────

【問3】

◆ 出題ポイント
出題者の意図に沿って、プログラムの効率化(for文からwhile文への書き換え)ができるかどうか。

◇ 最長待ち時間の処理
新しく最長待ち時間を表す変数をプログラムに追加。

(10)
saichou = 0

問2で求めた待ち時間を用い、現在の最長待ち時間と比較し、大きい方を saichou とする。

(13)
不等号の意味が理解できていれば、他が多少分からなくても対応可能。

◇ ス・セ・ソについて
ス・セ・ソは、for文からwhile文への書き換え。

While文の構造と処理の流れがイメージできるかどうかがポイント。

【ス】
変数の初期化。
繰り返し処理が始まる前に行う処理であることが分かれば、①の位置と判断できる。

【セ】
(03)の通り、taiken を1から15まで1ずつ増やしながら繰り返すため、繰り返し処理の最後に位置する処理であると判断できる。

【ソ】
実行回数」という言葉の意味が分かるかどうか。

これは、繰り返し処理が何回処理されたかという意味であり、「何回表示されたか」とは関係がない。

if文(13行目)によって表示されるのは4回だが、繰り返し処理自体は12行目で saichou が更新されるため、体験時間が5分のケースも実行対象となる。
したがって、繰り返し処理の実行回数は5回となる。

──────────────────

いかがだったでしょうか?

今回は、実際の問題をもとに解説してみました。なかなか手ごたえのある試験ですよね。

少しでも「なるほど!」と思っていただけたら嬉しいです。

次回は、プログラミングラボでの学習がどのようにこの試験対策につながっているのかをご紹介します。どうぞお楽しみに!