基本情報技術者試験の公開問題を解こう!(令和7年度・科目B)(04)「2つの配列の同じ並びを検索するプログラム」

ITの基礎

基本情報技術者試験の令和7年度の公開問題(科目B)を解こう。

今回のテーマは、「2つの配列の同じ並びを検索するプログラム」である。

令和7年度 基本情報技術者試験 科目 B 公開問題 問4

正解:ク

今回のデータの確認

  • data: {"a", "b", "a", "b", "c", "a", "b", "c"} (8文字)
  • key: {"a", "b", "c"} (3文字)

🏃‍♂️ 「真(一致)」になった時だけカウント!トレース表

外側のループ i は、開始位置を 1から6まで 動かす(8 ー 3 + 1 = 6)。
「条件式 β」が ○(一致) になった回数をカウントしていく。

開始位置 (i)比較のステップ (j)data側 と key側判定カウント
i = 1j = 1“a” == “a”○ (真)1回目
j = 2“b” == “b”○ (真)2回目
j = 3“a” == “c”× (偽)(カウントしない)
i = 2j = 1“b” == “a”× (偽)(カウントしない)
i = 3j = 1“a” == “a”○ (真)3回目
j = 2“b” == “b”○ (真)4回目
j = 3“c” == “c”○ (真)5回目
i = 4j = 1“b” == “a”× (偽)(カウントしない)
i = 5j = 1“c” == “a”× (偽)(カウントしない)
i = 6j = 1“a” == “a”○ (真)6回目
j = 2“b” == “b”○ (真)7回目
j = 3“c” == “c”○ (真)8回目

✨ 結論

一致した回数(真となった回数)を合計すると、8回 になる。正解は となる。

💡 初学者へのアドバイス

科目Bの問題文には、今回のように「実行回数」なのか「真(True)になった回数」なのかを区別させるひっかけが出題される。

  • 実行回数if 文を通った回数すべて(真も偽も含む)
  • 真となる回数if 文の中身が「一致(真)」した回数のみ

コメント

タイトルとURLをコピーしました