ルール
作業可能レーンに順番にかかる作業時間がバラバラなタスクが流れてきて、最終的に作業可能レーンにタスクがなくなる時間を知りたい
具体的に
times
には、作業にかかる時間が適当な数定義されており、
till
は作業可能レーン数が定義されている。
最終的に全部のtills
で作業が終わる時間が知りたい。
times = [3,4,5,6,7,8,9,20,30]
till = 5
tills = Array.new(till, 0)
# => tills
# => [0, 0, 0, 0, 0]
求め方
times
をeachでまわし、tills
の中で一番作業時間が少ない列
をindex()の引数に持ち、
その列をtillsから特定して、eachの値を加算していく.
times.each {|time| tills[tills.index(tills.min)] += time}
tills.max
#> tills
#=> [11, 13, 25, 36, 7]
#> tills.max
#=> 36