2011年12月17日土曜日

TopCoder SRM283 Div2 250Pts

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

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計