Sha256: 36c212788ab4cb53e0009dbdd0be14f79a3c62d7388ccfbd9b3b20eabb10c50c
Contents?: true
Size: 708 Bytes
Versions: 71
Compression:
Stored size: 708 Bytes
Contents
BOOK_PRICE = 800 def _group_price(size): discounts = [0, .05, .1, .2, .25] if not (0 < size <= 5): raise ValueError('size must be in 1..' + len(discounts)) return BOOK_PRICE * size * (1 - discounts[size - 1]) def calculate_total(books, price_so_far=0.): if not books: return price_so_far groups = list(set(books)) min_price = float('inf') for i in range(len(groups)): remaining_books = books[:] for v in groups[:i + 1]: remaining_books.remove(v) price = calculate_total(remaining_books, price_so_far + _group_price(i + 1)) min_price = min(min_price, price) return min_price
Version data entries
71 entries across 71 versions & 1 rubygems