このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について、おおまかに説明する。
正方行列の不釣り合いの度合いを計算しようとしている。正方行列の不釣り合いとは、主対角成分の和から補対角成分の和を引き算したものである。補対角成分はn*nの行列において、(1,n)、(2,n-1)、...、(n,1)の成分を指す。文字列型配列matrix[]が与えられたときに、対角成分の不釣り合いを計算して返せ。matrix[i]番目のj番目の文字が(i,j)成分を表すものとする(つまり、数値は0-9という1桁の数になる)。
私の解答はこちら。
public class DiagonalDisproportion {
public int getDisproportion(String[] matrix) {
int main = 0;
int collateral = 0;
int len = matrix.length;
for( int i=0 ; i<len ; i++ ){
main += matrix[i].charAt(i)-'0'; // 主対角成分の総和を計算
collateral += matrix[i].charAt(len-1-i)-'0'; // 補対角成分の総和を計算
}
return main-collateral;
}
}得点は243.79/250、中央値は約239点。

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