ゼロから理解する基本情報アルゴリズム

基本情報技術者試験(科目B)は

アルゴリズムの構造理解を問う試験です。

難しい数学ではありません。

重要なのは次の「型」です。

  • 上から順に読む
  • 条件の順番を守る
  • 交換は半分で止める
  • 分子と分母をそろえる
  • 構造を理解する

IPA公開サンプル問題(問1〜問6)を

IPA擬似言語仕様に準拠して解説します。


サンプル問題

問1:条件分岐(料金判定)

仕様

  • 3歳以下 → 100円
  • 4〜9歳 → 300円
  • 10歳以上 → 500円

IPA準拠の擬似言語

if age <= 3 then
    fee ← 100
elseif age <= 9 then
    fee ← 300
else
    fee ← 500
endif

なぜ「age <= 9」なのか?

擬似言語は上から順に評価されます。

もし

elseif age >= 4 then

と書くと,

10歳以上も「4以上」に含まれてしまいます。

だから

  • 3以下
  • 9以下
  • それ以外

という範囲分割にします。


正解


試験で問われる本質

  • if / elseif は上から順番
  • 条件の順序が結果を決める

問2:配列の反転

配列 A(添字は1始まり)

A[1] A[2] A[3] A[4] A[5]

反転の擬似言語

n ← length(A)

for i ← 1 to n div 2
    temp ← A[i]
    A[i] ← A[n - i + 1]
    A[n - i + 1] ← temp
endfor

重要

  • 添字は1始まり
  • n div 2 は整数除算
  • 右側の位置 = n – i + 1

なぜ半分で止める?

同じ要素を2回交換すると元に戻るため。


正解


試験で問われる本質

  • 交換は半分まで
  • 添字計算を正しく行えるか

問3:連結リストへの追加

構造:

A → B → C → null

擬似言語イメージ

p ← head

while p.next <> null
    p ← p.next
endwhile

p.next ← newnode

ポイント

  • 配列:添字で直接アクセス
  • リスト:順にたどる

正解


試験で問われる本質

  • 構造の違いを理解できるか

問4:疎行列

疎行列とは

要素のほとんどが0の行列。


保存方法

0は保存せず,

(行番号, 列番号, 値)

のみ保存する。


正解


試験で問われる本質

  • 保存形式の工夫

問5:割合計算

「nの次がf」である割合。


擬似言語イメージ

count_nf ← 0
count_n  ← 0

for i ← 1 to length(s) - 1
    if s[i] = "n" then
        count_n ← count_n + 1
        if s[i + 1] = "f" then
            count_nf ← count_nf + 1
        endif
    endif
endfor

ratio ← count_nf / count_n

重要

最後の文字は除外する。

なぜなら

「次の文字」が存在しないから。


正解


試験で問われる本質

  • 分子と分母の対象をそろえる

問6:クラウドの責任分担

基本概念:

対象担当
OS・DBクラウド側
アプリ利用者

※IaaS / PaaS / SaaS で範囲は変わる。


正解


試験で問われる本質

  • 責任境界を理解できるか

まとめ

科目Bは暗記ではありません。

重要なのは:

  • 上から読む
  • 半分で止める
  • 添字は1始まり
  • div は整数除算
  • 分母を揃える
  • 構造を理解する

この「型」を身につければ

確実に得点できます。


訪問数 4 回, 今日の訪問数 4回