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