今日のTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。
問題について説明する。ある国の子供が受けた数学と言語の試験結果のリストを受け取った。点数が入った配列math[]とverbal[]が与えられたとき、2科目の平均が、全体の平均点に満たない子供の数を返すメソッドを作成せよ。ただし、配列のi番目は子供iの結果を表す。また、受験した子供の人数は、配列の長さで表される。もちろんmath[]とverbal[]の長さは等しい。
私の解答はこちら。
public class Average {
public int belowAvg(int[] math, int[] verbal) {
double ave = 0.0;
for( int i=0 ; i<math.length ; i++ ){
ave += (math[i]+verbal[i]);
}
ave /= math.length*2;
int belown = 0;
for( int i=0 ; i<math.length ; i++ ){
double tmp = (math[i]+verbal[i])/2.0;
if( tmp < ave ) belown++;
}
return belown;
}
}得点は、244.74/250。全体の平均を計算したのちに、一人ずつ下回っているか判定するということを実装しておしまい。

0 件のコメント:
コメントを投稿