共通テスト「情報Ⅰ」のプログラミング問題で、長いコードを見ると、何から考えればよいのか分からなくなる。
繰り返しや条件分岐は勉強した。それでも過去問の空欄を埋められない。
そんな受験生が確認したいのが、2026年度共通テスト第3問だ。
2026年11月5日、情報処理学会の学会誌「情報処理」が、この問題について詳しい解説を公開した。
重要なのは、プログラムの命令を一行ずつ訳すことだけではなく、何を実現するためのプログラムなのかを理解することだ。
第3問は文化祭のゲームが題材
2026年度の情報Ⅰ第3問は25点分。文化祭で展示するゲームを題材に、来訪者の待ち時間を計算する問題だった。
ゲームは同時に1人しか体験できず、1人あたりの体験時間は3分。
次の人が来ても、前の人がゲームを続けていれば待つ必要がある。
問題は大きく3段階に分かれていた。
- 到着時刻から待ち時間を計算する。
- その計算をプログラムに置き換える。
- 体験時間を変えてシミュレーションし、計算を効率化する。
最初から難しいコードを書かせるのではなく、身近な出来事を計算手順に変え、さらにプログラムへ発展させる構成だ。
待ち時間はどうやって計算する?
実際の問題では、4人目の来訪者は、開始から10分後に到着する。
その前の3人目は9分後にゲームを終了している。したがって4人目は待たずに開始できる。
一方、5人目は11分後に到着するが、4人目が終了するのは13分後。待ち時間は2分だ。
6人目は12分後に到着し、5人目が16分後に終了するまで待つため、待ち時間は4分となる。
ここで必要なのは、次の3つの関係だ。
- 開始時刻:本人の到着時刻と前の人の終了時刻のうち、遅い方。
- 終了時刻:開始時刻+体験時間。
- 待ち時間:開始時刻-到着時刻。
この関係を理解してからコードを見ると、各命令が何を計算しているのか判断しやすくなる。
プログラムを読めない原因はどこにある?
問2では、問1で計算した待ち時間をプログラムで求める。
到着時刻、開始時刻、終了時刻をそれぞれ配列というデータの集まりに保存する。
ここで「Kaishi[i]」はi人目の開始時刻、「Shuryou[i-1]」は直前の人の終了時刻を意味する。
開始時刻を求めるために必要なのは、本人の到着時刻と直前の人の終了時刻の比較だ。
つまり、問1で行った計算と同じことを、コンピュータに実行させている。
コードの記号だけを追っていると、計算の意味が見えなくなる。
間違えたときは、次のどこで止まったかを確認したい。
- 問題文から待ち時間を計算できなかった。
- 計算はできたが、配列が何を表すか分からなかった。
- 配列は分かったが、繰り返しの範囲を読み違えた。
どれも同じ「プログラミングの失点」だが、必要な復習は異なる。
問3では計算を途中で止める理由まで問われた
問3では、1人あたりの体験時間を1分から15分まで変え、最も長く待つ来訪者の待ち時間が10分未満になる場合を調べる。
その後、条件に応じて繰り返しを途中で止め、計算回数を減らす方法が出題された。
ここでは、最初に設定する値、処理を続ける条件、値を更新する位置を正しく理解する必要がある。
11月5日の解説では、プログラム全体を「初期化・条件判定・処理・更新」に分けて考えることが説明されている。
プログラムを部分ごとに読むだけでなく、全体で何を調べ、どの条件を満たしたら処理を終えるのかを考える問題だった。
2027年度の受験生は何を確認する?
大学入試センターは2027年度の共通テストについて、プログラミング問題では独自のプログラム表記を使用すると説明している。
特定のプログラミング言語の暗記だけを問う試験ではない。
2026年度の第3問が苦手だった場合、まず問1の待ち時間をコードなしで計算できるかを確かめたい。
次に、問2の各変数が何を表すのか説明する。最後に、問3の繰り返し処理を、最初の値・続ける条件・更新する値に分けて読む。
ただし、2027年度も文化祭や待ち時間が出題されるとは限らない。また、この復習法によって何点上がるかを示す検証結果もない。
平均点付近からさらに得点を伸ばすには、プログラムを読めない原因が「計算」「変数」「繰り返し」のどこにあるのかを見分けることが一つの判断材料になる。


