基本情報技術者科目Bの擬似言語とデータ構造オリジナル・公式資料照合難易度★★★☆☆
配列a={2,2,5,5,5,2}の隣接する同じ値を一つのまとまりとして数える。次の処理のgroupsは最終的に幾つか。添字は1~6である。 groups ← 1 for i を 2 から 6 まで1ずつ増やす if a[i] ≠ a[i-1] groups ← groups + 1 endif endfor
A
2
値の種類は2と5の2種類ですが、最後の2は先頭の2と離れた別のまとまりです。
B
3★ 正解
{2,2}、{5,5,5}、{2}の3まとまりです。値が変わるi=3,6で加算します。
C
4
同じ値が続くi=2,4,5では加算しません。初期値1に変更箇所2を加えて3です。
D
6
6は要素数です。この処理は各要素ではなく値の切り替わりを数えます。
解説
連続する同値の区間を数えます。初期区間を1とし、隣接値が変わる2箇所を加えて3です。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28
同じレッスンの問題
問題 1
配列a={3,8,2,7,4}の添字は1から始まる。次の擬似言語を実行した後のsはどれか。
s ← 0
for i を 1 から 5 まで1ずつ増やす
if a[i] mod 2 = 0
s ← s + a[i]
endif
endfor
modは整数の剰余を表す。
問題 2
添字1~5の配列a={6,4,9,2,7}を次の処理で探索する。x=9のとき、返す値はどれか。
i ← 1
while i ≦ 5 and a[i] ≠ x
i ← i + 1
endwhile
if i ≦ 5
return i
else
return 0
endif
andは左側が偽なら右側を評価しない。
問題 3
昇順配列a={2,5,8,12,16,23,38}の添字は1~7である。二分探索でlow=1, high=7から開始し、mid=floor((low+high)/2)とする。x=16を探し、a[mid]<xならlow=mid+1、a[mid]>xならhigh=mid-1にする。比較する添字midの順序はどれか。
問題 4
空のスタックに対して、push(4)、push(7)、x←pop()、push(2)、y←pop()、z←pop()を順に実行する。pushは先頭へ積み、popは最後に積んだ要素を取り出す。x,y,zの組はどれか。