このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題についておおまかに説明する。
あなたは可能な限り安い選択で新しい車を買いたいと思っている。ただ、初期購入費用は車にかける費用の一部であり、税金や燃費も車選びの決定に関係づけたいと思っている。問題ではcars[]という車のモデルの特徴が与えられ、1年に走る距離を表すannualDistanceが与えられる。えらんだ車に対し、購入費用は1度だけ、税金は年に1度、燃料にかかる費用は「fuelPrice*走った距離/燃費」で与えられる。yearsだけ年数が経過したときに、最小のコストになる車を選び、そのときの所有にかかる維持費を実数型で返せ。cars[]は"<購入初期費用> <税金> <燃費>"で与えられる。
私の解答はこちら。
public class CarBuyer { public double lowestCost(String[] cars, int fuelPrice, int annualDistance, int years) { double ret = Double.MAX_VALUE; for( int i=0 ; i<cars.length ; i++ ){ String[] vals = cars[i].split(" "); int purchaseCost = Integer.parseInt(vals[0]); // 初期購入費用 int tax = Integer.parseInt(vals[1]); // 税金 int fuelEfficiency = Integer.parseInt(vals[2]); // 燃費 double totalCost = (double)purchaseCost + (double)tax * years + (double)fuelPrice * annualDistance * years / fuelEfficiency; ret = Math.min(ret, totalCost); } return ret; } }
得点は240.69/250、中央値は約193点。1回のsubmitでシステムテストクリア。
0 件のコメント:
コメントを投稿