アルゴリズムとプログラミング

基本情報技術者試験6 個のノード(番号 1〜6)からなる有向グラフを次の辺リストで与える(u → v は u から v…

アルゴリズムとプログラミングアルゴリズムとプログラミング計算問題難易度:normal
6 個のノード(番号 1〜6)からなる有向グラフを次の辺リストで与える(u → v は u から v への辺)。 1→2, 1→3, 2→4, 3→4, 2→5, 4→6 出次数(そのノードから出ていく辺の本数)が 0 のノード、すなわち他のどのノードへも辺を持たない終端ノードの個数を求める。次の擬似言語を実行したとき返り値 sinks はどれか。
○関数: countSinks(): 整数型
  整数型の配列: outdeg ← {0, 0, 0, 0, 0, 0}
  各辺 u→v について
    outdeg[u] ← outdeg[u] + 1
  整数型: i, sinks ← 0
  for (i を 1 から 6 まで 1 ずつ増やす)
    if (outdeg[i] = 0)
      sinks ← sinks + 1
    endif
  endfor
  return sinks
4 個
1 個
2 個
3 個
正解
ウ.2 個

辺の始点 u を数えると出次数は 1→2本, 2→2本, 3→1本, 4→1本, 5→0本, 6→0本。outdeg={2,2,1,1,0,0} のうち 0 はノード5 とノード6 の 2 個なので sinks=2、すなわち ウが正しい。

?選択肢ごとの解説

ア ×4 個は出次数が 0 でないノードまで数え込んだ過大計上であり、終端の判定を誤った結果である。
イ ×1 個はノード5・6 のどちらか一方だけを数え、もう一方を見落とした計上漏れの誤りである。
ウ ○辺の始点 u を数えると出次数は 1→2本, 2→2本, 3→1本, 4→1本, 5→0本, 6→0本。outdeg={2,2,1,1,0,0} のうち 0 はノード5 とノード6 の 2 個なので sinks=2、すなわち ウが正しい。
エ ×3 個は出次数 1 のノード(3 や 4)を終端に含めてしまうなど、0 以外を数えた誤りである。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0155

【基本情報技術者試験】6 個のノード(番号…|正解「2 個」|ukamiru 過去問