2011年4月10日日曜日

TopCoder SRM171 Div2 250Pts

Javaの練習も兼ねてTopCoderでプログラミング。以下に書いたコードを紹介するがLevelUpという整数型を返すクラスを実装する。問題を日本語に訳すと以下のような問題である。

よくあるRPGではモンスターを倒して経験値を稼ぐことでレベルが上がるが,これについての実装を行う。expNeededが次のレベルに必要な経験値、receivedが現在の経験値を表している。このとき、次のレベルになるのに必要な経験値を返せ。

例えばexpNeededに[100,300,600](単調増加と仮定してよい)という配列の値が入っていて、receivedに320と入っていたら、600-320=280を返せということになる。receivedが300なら600-300=300になる。

実装したコードは以下の通り。

public class LevelUp{
 public static int toNextLevel(int[] expNeeded, int received){
  int i;
  int idx=0;
  for( i=0 ; i< expNeeded.length ; i++ ){
   if(received < expNeeded[i] ){
    return expNeeded[i]-received;
   }
  }
  return 0;
 }
}

点数は184.09/250といまいち。簡潔な解法を思いつくのに時間がかかってしまった。

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計