Sha256: 226834699935a233e090901fc52ebe8c1e0810e7db6da1d36a2b5fc4e3f37b4f

Contents?: true

Size: 706 Bytes

Versions: 59

Compression:

Stored size: 706 Bytes

Contents

BOOK_PRICE = 8


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

59 entries across 59 versions & 1 rubygems

Version Path
trackler-2.2.1.107 tracks/python/exercises/book-store/example.py
trackler-2.2.1.106 tracks/python/exercises/book-store/example.py
trackler-2.2.1.105 tracks/python/exercises/book-store/example.py
trackler-2.2.1.104 tracks/python/exercises/book-store/example.py
trackler-2.2.1.103 tracks/python/exercises/book-store/example.py
trackler-2.2.1.102 tracks/python/exercises/book-store/example.py
trackler-2.2.1.101 tracks/python/exercises/book-store/example.py
trackler-2.2.1.100 tracks/python/exercises/book-store/example.py
trackler-2.2.1.99 tracks/python/exercises/book-store/example.py
trackler-2.2.1.98 tracks/python/exercises/book-store/example.py
trackler-2.2.1.97 tracks/python/exercises/book-store/example.py
trackler-2.2.1.96 tracks/python/exercises/book-store/example.py
trackler-2.2.1.95 tracks/python/exercises/book-store/example.py
trackler-2.2.1.94 tracks/python/exercises/book-store/example.py
trackler-2.2.1.93 tracks/python/exercises/book-store/example.py
trackler-2.2.1.92 tracks/python/exercises/book-store/example.py
trackler-2.2.1.91 tracks/python/exercises/book-store/example.py
trackler-2.2.1.90 tracks/python/exercises/book-store/example.py
trackler-2.2.1.89 tracks/python/exercises/book-store/example.py
trackler-2.2.1.88 tracks/python/exercises/book-store/example.py