この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 件のコメント:
コメントを投稿