Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
class Treasure: solution in Clear category for Treasures by flpo
from collections import OrderedDict
class Treasure:
def __init__(self, **kwargs):
vars(self).update(kwargs)
@property
def value(self):
return self.price / self.weight
def __lt__(self, other):
return self.value < other.value
def treasures(info, limit):
limit = int(limit * 1000)
ts = (Treasure(name=item, **data) for item, data in info.items())
bag = OrderedDict((i, 0) for i in ('golden coin', 'silver coin', 'ruby'))
for item in sorted(ts, reverse=True):
bag[item.name] = min(item.amount, limit // item.weight)
limit -= bag[item.name] * item.weight
return [f'{item}: {count}' for item, count in bag.items() if count]
Sept. 20, 2018
Comments: