2023年4月から基本情報技術者の試験制度が変更されました。
試験制度は変更されたものの科目B(旧:午後問題)の重要さは変わりません。
出題方式は「多肢選択式」で以前と同じですが、データ構造及びアルゴリズムが8割、情報セキュリティが2割の割合で出題される点が大きく変わっています。
合格基準点は600点以上/1000点満点中、つまり6割以上取れれば合格になります。
サンプル問題では前半16問が「データ構造及びアルゴリズム」の問題。残り4問が「情報セキュリティ」の問題。となっています。
サンプル問題は公式にIPAから出されている貴重な情報です!
早速、問題を見ていきましょう!
問11 (データ構造及びアルゴリズム)
設問
解答
答え:「ア」
解説
ソートに関する問題です。
ポイントは、「bins[ data[ i ] ] ← data[ i ]」です。
例えば、引数がア:{2, 6, 3, 1, 4, 5}であるときを考えます。
i = 1のとき
「bins[ data[ i ] ] ← data[ i ]」は、「bins[ data[ 1 ] ] ← data[ 1 ]」というように代入されます。
つまり、「bins[ 2 ] ← 2」となり、binsは「{null, 2, null, null, null, null}」となります。
配列dataの一番目の要素" 2 "をbinsの2番目の要素に入れているというプログラムです。
それぞれ確かめていくと、 {1, 2, 3, 4, 5, 6}と昇順に並び替えられています。
よって、正解の選択肢は「ア」になります。
<補足>
また、プログラムを見るとソートのときに重複は見られていません。
つまり、要素数は6あるにも関わらず、一つの重複があると5つの値がソートされてnullが一つ余ります。(同一の値は上書きされているため。)
したがって、値に重複が見られる「イ」・「ウ」・「エ」は不適です。
最後に
いかがだったでしょうか。
全ての選択肢をトレースしても解けるかと思いますが、どういったプログラムかを理解できれば時間を節約して解くことが可能です。
複雑に見えますが、理解できないときは試しに仮の値を入れて動きを見てみましょう。プログラムの動きがわかれば、そこまで怖がる問題ではありません。
徐々に難しさも見えてきますが、冷静に解答していきましょう!