科目Bアルゴリズム

2025年春 科目B 問4
アルゴリズムの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次の記述中の □ に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。


関数searchは,二つの文字型の配列を引数data及びkeyで受け取り,dataからkeyの要素の並びと同じ並びを全て探し,その先頭の要素番号を全て格納した配列を返す。


関数searchをsearch({"a","b","a","b","c","a","b","c"}, {"a","b","c"})として呼び出すと,/*** β ***/の行の条件式が真となる回数は □ 回である。


〔プログラム〕

○整数型の配列: search(文字型の配列: data, 文字型の配列: key)

整数型: i, j, lenData, lenKey

整数型の配列: result ← {}

lenData ← dataの要素数

lenKey ← keyの要素数

for (i を 1 から (lenData-lenKey+1) まで 1 ずつ増やす)

for (j を 1 から lenKey まで 1 ずつ増やす) // α

if (data[i+j-1] が key[j] と等しい) /*** β ***/

if (j が lenKey と等しい) : resultの末尾にiの値を追加する : endif

else

αの行から始まる繰返し処理を終了する

endif

endfor

endfor

return result

当てはまるものを、ひとつ選んでね。

1〜4キーで選択し、Enterキーで採点できます。

出典:令和7年度 基本情報技術者試験 科目B 問4
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は ク です。

data=[a,b,a,b,c,a,b,c], key=[a,b,c]。βはdata[i+j-1]==key[j]が真の回数をカウント。i=1: a==a✓,b==b✓,a==c✗ → 2回。i=2: b==a✗ → 0回。i=3: a==a✓,b==b✓,c==c✓ → 3回(result=[3])。i=4: b==a✗ → 0回。i=5: c==a✗ → 0回。i=6: a==a✓,b==b✓,c==c✓ → 3回(result=[3,6])。合計 2+0+3+0+0+3 = 8回。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…