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

基本情報技術者試験配列/集計」の問題

アルゴリズムとプログラミングアルゴリズムとプログラミング計算問題難易度:normal
配列 grp には各売上のグループ番号(1 または 2)、配列 amt には同じ添字の売上額が格納されている。次の手続 sumGroup1 はグループ番号が 1 の売上額だけを合計して返す。grp = {1, 2, 1, 1, 2}、amt = {120, 340, 150, 230, 410}(要素数 5、添字は 1 から)を与えたとき、戻り値はどれか。
○整数型: sumGroup1(整数型の配列: grp, 整数型の配列: amt)
  整数型: s ← 0
  整数型: i
  for (i を 1 から grpの要素数 まで 1 ずつ増やす)
    if (grp[i] が 1 と等しい)
      s ← s + amt[i]
    endif
  endfor
  return s
750
500
1250
95
正解
500

grp[i]=1 の添字 1, 3, 4 に対応する amt を加える。120+150+230=500 となるため イが正しい。

?選択肢ごとの解説

ア ×グループ 2 の売上 340+410=750 を合計した、条件 grp=1 を grp=2 と取り違えた誤りである。
イ ○grp[i]=1 の添字 1, 3, 4 に対応する amt を加える。120+150+230=500 となるため イが正しい。
ウ ×グループを区別せず全売上 120+340+150+230+410=1250 を合計した、条件分岐を無視した誤りである。
エ ×件数 3 や平均 95 など、合計とは別の値を返した取り違えで、累積合計を求めていない誤りである。

くわしく

2 つの並行配列(キー配列と値配列)を同じ添字で対応づける処理である。条件はキー配列 grp を見て、加算対象は値配列 amt を取る点を取り違えないことが核心である。

本番での押さえどころ

試験のコツ

添字 i ごとに (grp[i], amt[i]) のペアを書き出し、条件に合うペアの値だけを縦に足す。

覚え方

『キーで選び、値を足す』とペア処理の役割を分けて覚える。

よくある誤り

条件判定する配列と加算する配列を混同したり、グループ番号を取り違えたりするミスが多い。

アルゴリズムとプログラミングの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-algo-0134

【基本情報技術者試験】配列/集計の問題 — 解答・解説|ukamiru 過去問