アルゴリズムとプログラミング
基本情報技術者試験|印刷ジョブを先着順(FIFO)で処理するキュー q がある。各ジョブは (id, ページ数) を持ち、deq…
印刷ジョブを先着順(FIFO)で処理するキュー q がある。各ジョブは (id, ページ数) を持ち、deq したジョブのページ数を累計し、累計が初めて 5 ページ以上になった時点のジョブの id を返す。初期キュー(先頭→末尾)が {(A,2),(B,1),(C,3),(D,4)}(先頭=A)のとき、戻り値はどれか。enqueue/dequeue は末尾追加/先頭取り出し、isEmpty は空判定を表す。
○文字列型: firstReach()
キュー: q ← {(A,2),(B,1),(C,3),(D,4)}
整数型: acc ← 0
ジョブ: job
while (q.isEmpty が false)
job ← q.dequeue()
acc ← acc + job.ページ数
if (acc ≧ 5)
return job.id
endif
endwhile
return "なし"アジョブ B(累計3で誤判定)
イジョブ C
ウジョブD
エジョブ A
正解
イ.ジョブ C
FIFO で A,B,C,D の順に処理し、ページ数を累計する。2→3→6 と進み、C を加えた時点で初めて 5 以上になるため、返る id は C となり イが正しい。
?選択肢ごとの解説
ア ×B を加えた時点の累計 3 を 5 以上と誤認した、しきい値判定を早まった誤りである。
イ ○FIFO で A,B,C,D の順に処理し、ページ数を累計する。2→3→6 と進み、C を加えた時点で初めて 5 以上になるため、返る id は C となり イが正しい。
ウ ×D まで処理しないと 5 に届かないと誤認した、C で既に 6 に達する点を見落とした遅れの誤りである。
エ ×先頭の A で即達すると誤認した、A 単独の 2 ページでは 5 に満たない点を無視した誤りである。
アルゴリズムとプログラミングの他の問題
次の擬似言語は、文字列 s を左から走査し、スタック頂上と同じ文字が来たら頂上を pop して両者を消し、異なれば…容量 4 の循環キュー(リングバッファ)を配列 buf[1..4] で実装する。head は次に取り出す位置、tail…同じ入力列 1, 2, 3, 4 を、(A) スタック(push 後にすべて pop)と (B) キュー(enqueue…スタックに対する push(積む)と…キューに対する enqueue(末尾に追加)と…次の擬似言語は、スタックを用いて文字列中の丸括弧の対応が正しいかを調べ、正しければ "OK"、誤っていれば "NG"…次の擬似言語は、逆ポーランド記法(後置記法)の式をスタックで評価する手続である。トークン列を左から処理し、数値なら…次の擬似言語は、スタックを使って文字型の配列 s を逆順にした文字列を返す手続である。まず全文字を順に push…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0105
