# Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
rentable_items = [
%w(x x x - - - x x x - - -), # item1
%w(- - - - - - - - - - - -), # item2
%w(x x x x x x x - - - - -), # item3
%w(x x x - - - - x x x x x) ]# item4
Хорошо, учитывая, что структура данных (которая представляет рентные слоты в месяцах предметов), где "x" обозначает не арендуемую, а "-" обозначает арендуемую, у меня следующий вопрос.
Когда я получаю входящий запрос на период с апреля по июнь, я хочу получить результат в следующем порядке:
items = rentable_items.ideal_utilization_for("2010/03/01", "2010/06/30")
items # [item1, item2, item4] #where item4 is the worst
Идея заключается в том, чтобы сначала заполнить пробелы в предмете и попытаться создать как можно меньше новых пробелов.
Мне не нужно полное решение, но совет, какие инструменты (библиотека, гем, алогритм) доступны для такой проблемы. Примеры будут очень признательны.
[Редактировать: удален второй пример, чтобы сосредоточиться на реальной проблеме.]