問題文概略
一日に与えられる仕事とこなせる仕事の量が決まっている。
仕事を終えられる日数を求めよ。
書いたコード
解けなかった。
他の参加者のコードを読んで修正した
public class WidgetRepairs {
public int days(int[] arrivals, int numPerDay) {
int n = arrivals.length;
int w = 0, ans = 0;
for (int i = 0; i < n; i++){
w += arrivals[i];
if(w > 0) {
ans++;
w -= Math.min(w, numPerDay);
}
}
if(w > 0) {
ans += (int) Math.ceil( ((double) w/ numPerDay));
}
return ans;
}
}
雑感
仕事の量も配列にいれて管理しようとコードを書いていたら混乱して解けなかった。
単純に一つ変数を用意して、管理すればよかったのか。
仕事量を計算する時の以下の考えかたは覚えておこう。
w -= Math.min(w, numPerDay);