QUESTION 55
次の処理は、同じ文字が連続するまとまりの個数をcountで数える。終了後のcountはいくつか。配列の要素番号は1から始まり、forの両端を含む。配列は空ではない。 文字型の配列: a ← {"A", "A", "B", "B", "B", "A", "C", "C"} 整数型: count ← 1 整数型: i for (i を 2 から 8 まで 1 ずつ増やす) if (a[i] ≠ a[i - 1]) count ← count + 1 endif endfor
出典:本サイト オリジナル教材(2026年)
本サイトで独自に作成。IPAの試験問題からの転載ではありません。
公開日:
選択肢を選んで、答え合わせをしましょう。
回答せずに正解・解説を確認する
正解:イ 4
この表示だけでは、回答数や正答率は変わりません。
解説
先頭のまとまりをcount=1として数えています。前の文字と違うのはi=3のB、i=6のA、i=7のCの3か所なので、1+3=4です。まとまりはAA、BBB、A、CCの四つになります。離れた場所のAは別のまとまりです。
ア
A、B、Cという文字の種類数は3ですが、連続したまとまりの数とは異なります。
イ
初めのまとまり1個に、文字が切り替わる3か所を加えた数です。
ウ
同じ文字が続く場所ではcountを増やさないため、5にはなりません。
エ
8は配列の要素数です。すべての要素でcountを増やすわけではありません。
関連知識
ランレングス圧縮では、同じ値の連続区間を値と長さで表します。この処理は長さの出力まではせず、区間の個数だけを数えています。
間違えやすいポイント
countを0から始めると、先頭のまとまりを数え落とします。ただし空配列も扱うなら、この初期化をそのまま使えません。
覚え方
最初に1、変わるたびに1。
実務での意味
連続した同じ状態のログやセンサー値から、状態が何回切り替わったかを調べる処理に応用できます。
解説:本サイト編集部によるオリジナル文章