アルゴリズムとプログラミング
基本情報技術者試験|整数を格納したキュー(先頭から取り出す…
整数を格納したキュー(先頭から取り出す FIFO)がある。次の手続は、キューの要素が1個になるまで「先頭の2つを取り出し、その和を末尾に追加する」ことを繰り返し、最後に残った値を返す。初期状態でキューに先頭から順に 40, 70, 20, 90 が入っているとき、手続 fold() の戻り値はどれか。
○整数型: fold()
整数型: a, b
while (キューの要素数 > 1)
a ← dequeue()
b ← dequeue()
enqueue(a + b)
endwhile
return dequeue()ア220
イ110
ウ90
エ330
正解
ア.220
FIFOで先頭2要素 a,b を取り出し a+b を末尾に追加する操作は、キュー内の総和を変えずに要素数を1ずつ減らす。要素が1個になるまで繰り返すと、最後に残る値は初期要素の総和 40+70+20+90=220 となる。
?選択肢ごとの解説
ア ○FIFOで先頭2要素 a,b を取り出し a+b を末尾に追加する操作は、キュー内の総和を変えずに要素数を1ずつ減らす。要素が1個になるまで繰り返すと、最後に残る値は初期要素の総和 40+70+20+90=220 となる。
イ ×110 は最初の1回で計算した和(40+70)にすぎず、処理を途中で止めた誤り。残りの要素を畳み込んでいない。
ウ ×90 は初期キューの末尾要素をそのまま答えたもので、手続を実行していない。
エ ×330 は和の計算過程で要素を重複して加算するなど、取り出し順を取り違えた誤り。総和は220を超えない。
アルゴリズムとプログラミングの他の問題
次の擬似言語は、文字型の配列 s に含まれる母音('a','e','i','o','u'…次の擬似言語は、文字型の配列 s を連長圧縮し、連続する同じ文字を「文字+連続数」の 2…次の擬似言語はシーザー暗号で英小文字を 3 文字後ろへずらす手続である。各文字の 0 起算の番号('a'=0,…英小文字の文字コードは 'a'=97, 'b'=98, …, 'z'=122 であり、対応する英大文字は小文字より 32…次の擬似言語は、スタックを使って文字型の配列 s を逆順にした文字列を返す手続である。まず全文字を順に push…次の擬似言語は、文字型の配列 s から連続して重複する文字を 1 つにまとめ(例: 'aabb' →…次の擬似言語は選択ソートの外側ループ 1 回目(先頭位置 1 を確定させる 1 パス)に相当する。arr = {8,…次の擬似言語は挿入ソートである。arr = {40, 15, 28, 9, 33}(要素数 5、添字は 1…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0030
