複雑アルゴリズムの擬似言語読解とは?科目Bで最も多く出る

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

複雑アルゴリズムの擬似言語読解とは(全体像)

これは、複雑なアルゴリズムを擬似言語で書いたコードを読み、その動きや結果を答える問題のこと。科目Bでいちばん多く出るタイプだ。

大事なのは、「知っている」だけでは解けないこと。たとえばバブルソートを言葉で知っていても、コードを手で追って(トレースして)最後の状態を出せなければ得点にならない。つまり、暗記ではなく追う技能が問われる。

よく出るアルゴリズムは、これまで学んだものばかり。


詳しく:出題パターンとトレース技能だけ覚えれば戦える

ここが記事の心臓部。まずは出題パターン4つ

出題パターン4つ

パターン問われること
穴埋めコードの空欄に入る正しい式を選ぶ
実行結果の予測ある入力で、最後にどんな出力になるか
計算量の判定O(n)か、O(n log n)か、O(n²)か
バグ発見コードのどこに誤りがあるか

どのパターンでも土台になるのが、次の読解技能だ。

読解の技能3つ

技能やること
トレース実行1行ずつ追って、処理を手で再現する
変数の追跡紙に変数の値の移り変わりを表で書く
不変条件を見抜くループ中つねに成り立つ性質に気づく

いちばん大事なのがトレース実行。頭の中だけで追うと間違えやすいので、紙に変数の値を書き出して、1行ごとに更新するのが確実だ。

そして見落としがちなのが時間配分。1問に時間をかけすぎると最後まで解ききれない。1問あたり5〜10分を目安に、難しい問題は後回しにする戦略が効く(問題数や時間は受験年度の最新案内で確認するとよい)。

わかりやすく言い換えると

要するに、擬似言語読解は「料理のレシピを手で再現して、できあがりを当てる」ことだ。

トレース実行 … レシピを1工程ずつ実際に追う(材料を入れて、混ぜて…)

変数の追跡 … 鍋の中身(変数の値)が各工程でどう変わるかをメモする

不変条件 … 「ずっと弱火を保つ」のような、最後まで変わらないルールに気づく

知っているだけ(レシピを眺めるだけ)では作れない。手を動かして1工程ずつ追うから、できあがり(最後の答え)が分かる、というわけだね。


試験のツボ

🔴 一番出る:トレース実行が土台

①コードを手で1行ずつ追って処理を再現する

②紙に変数の値を書き出し、1行ごとに更新する

🔴 次に出る:出題パターン4つ

①穴埋め/実行結果の予測

②計算量の判定/バグ発見

🟡 押さえると安定:時間配分

①1問あたり5〜10分が目安

②難しい問題は後回しにして、解ける問題から進める


よくある間違い

「アルゴリズムを知っていれば、手で追わなくても解ける」→ ✗  知識だけでは不十分。手で1行ずつ追うトレース実行の技能が必要。

「時間は気にせず、1問にいくらでもかけてよい」→ ✗  1問5〜10分が目安。かけすぎると最後まで解ききれない。

「トレースは頭の中だけで十分で、紙に書く必要はない」→ ✗  頭の中だけだと間違えやすい。紙に変数の値を書き出すのが確実。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(解くための技能)

📝 オリジナル問題 1 読解に必要な技能

擬似言語読解を解くための技能に関する次の記述のうち、正しいものはどれか。

  1. アルゴリズムの名前を暗記していれば、コードを追わなくても必ず解ける
  2. コードは眺めるだけでよく、変数の値を書き出す必要はないものである
  3. 出力だけを見て答えるので、途中の処理を追うことは不要なものである
  4. コードを手で1行ずつ追うトレース実行で、変数の値を書き出して解く
オーエスペン
オーエスペン 解答・解説

解答は 4 だよ。

擬似言語読解はコードを手で1行ずつ追うトレース実行が土台で、変数の値を紙に書き出して追うのが確実なんだ。暗記だけでは解けないよ。

選択肢1は「暗記だけで解ける」が誤り。選択肢2は「書き出す必要はない」が誤り。選択肢3は「途中を追わない」が誤りだよ。

選択肢判定理由
1暗記だけでは解けない
2変数の値を書き出すのが確実
3途中の処理を追う必要がある
4トレース実行で変数を追って解く

オリジナル問題2(出題パターン)

📝 オリジナル問題 2 出題パターン

擬似言語読解の出題パターンに関する次の記述のうち、正しいものはどれか。

  1. 出題は計算問題だけで、コードの空欄や実行結果を問うことはないとされる
  2. 穴埋め・実行結果の予測・計算量の判定・バグ発見などが出題される
  3. 出題はバグ発見だけに限られ、ほかのパターンは出ないものとされている
  4. 出題は暗記の知識を問うだけで、コードを読むパターンは存在しない
オーエスペン
オーエスペン 解答・解説

解答は 2 だよ。

出題は穴埋め・実行結果の予測・計算量の判定・バグ発見など、いくつかのパターンがあるんだ。どれもトレース実行が土台になるよ。

選択肢1は「計算問題だけ」が誤り。選択肢3は「バグ発見だけ」が誤り。選択肢4は「コードを読まない」が誤りだよ。

選択肢判定理由
1空欄や実行結果も問われる
2穴埋め・実行結果・計算量・バグ発見
3バグ発見だけではない
4コードを読むパターンが中心

オリジナル問題3(時間配分)

📝 オリジナル問題 3 時間配分

擬似言語読解の時間配分に関する次の記述のうち、正しいものはどれか。

  1. 1問につき時間は無制限なので、1問だけにすべての時間をかけてよい
  2. 難しい問題から必ず解き始め、簡単な問題は最後に回すのがよいとされる
  3. 1問5〜10分を目安にし、難しい問題は後回しにして解ける問題から進める
  4. すべての問題に同じ秒数だけかけ、難易度で時間を変えてはいけないとされる
オーエスペン
オーエスペン 解答・解説

解答は 3 だよ。

1問5〜10分を目安にし、難しい問題は後回しにして解ける問題から進めるのが効くんだ。1問にかけすぎると最後まで解ききれないからね。

選択肢1は「時間無制限」が誤り。選択肢2は「難しい問題から」が逆。選択肢4は「同じ秒数で固定」が誤りだよ。

選択肢判定理由
1時間は限られている
2解ける問題から進めるのがよい
31問5〜10分・難問は後回し
4難易度に応じて配分する

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る