Eclipse Coderを導入して2日目、以前より速い作業ができるようになったかも。
本日解いた問題を日本語にするとこんな感じ。
1971年までのイギリスの通貨は1シリング=12ペニー、1ポンド=20シリングであった。ペニーの数が与えられたときに、それは何シリング、何ポンド、何ペニーに変換されるか計算し、この順で返せ。ただし、できるだけペニーを多くし、次にポンドをできるだけ多くするものとする。
例えば533ペニーであれば、2ポンド4シリング5ペニーとなる。また入力となるペニーの値は0から10000とする。
public class BritishCoins {
public int[] coins(int pence) {
int[] ret = new int[3];
ret[0] = pence/240;
pence -= ret[0]*240;
ret[1] = pence/12;
pence -= ret[1]*12;
ret[2] = pence;
return ret;
}
}
得点は244.16/250。上から30%ぐらいの位置であった。かなり速いかなとおもっていたけど、簡単な問題だったせいか、皆コーディングが速かった。この問題はOne-linerに書けるようだ。上のretのように無駄に変数を使っていないから、コードが分かりやすい。
public int[] coins(int pence){
return new int[]{pence/240,pence%240/12,pence%240%12};
}

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