Sha256: 9280be1b90d58d85e6b55a8035c850fab85d94662522bcb9fb992e0dcfebcc1c

Contents?: true

Size: 1.72 KB

Versions: 140

Compression:

Stored size: 1.72 KB

Contents

To try and encourage more sales of the 5 different books
they sell of a popular series, a bookshop has decided to
offer discounts of multi-book purchases. 

One copy of any of the five books costs $8. 

If, however, you buy two different books, you get a 5%
discount on those two books.

If you buy 3 different books, you get a 10% discount. 

If you buy 4 different books, you get a 20% discount.

If you buy all 5, you get a 25% discount. 

Note: that if you buy four books, of which 3 are
different titles, you get a 10% discount on the 3 that
form part of a set, but the fourth book still costs $8. 

Your mission is to write a piece of code to calculate the
price of any conceivable shopping basket (containing only
books of the same series), giving as big a discount as
possible.

For example, how much does this basket of books cost?

- 2 copies of the first book
- 2 copies of the second book
- 2 copies of the third book
- 1 copy of the fourth book
- 1 copy of the fifth book
 
One way of grouping these 8 books is:

- 1 group of 5 --> 25% discount (1st,2nd,3rd,4th,5th)
- +1 group of 3 --> 10% discount (1st,2nd,3rd)

This would give a total of:

- 5 books at a 25% discount
- +3 books at a 10% discount

Resulting in:

- 5 x (8 - 2.00) == 5 x 6.00 == $30.00
- +3 x (8 - 0.80) == 3 x 7.20 == $21.60

For a total of $51.60

However, a different way to group these 8 books is:

- 1 group of 4 books --> 20% discount  (1st,2nd,3rd,4th)
- +1 group of 4 books --> 20% discount  (1st,2nd,3rd,5th)

This would give a total of:

- 4 books at a 20% discount
- +4 books at a 20% discount

Resulting in:

- 4 x (8 - 1.60) == 4 x 6.40 == $25.60
- +4 x (8 - 1.60) == 4 x 6.40 == $25.60

For a total of $51.20

And $51.20 is the price with the biggest discount.

Version data entries

140 entries across 140 versions & 1 rubygems

Version Path
trackler-2.0.8.34 common/exercises/book-store/description.md
trackler-2.0.8.33 common/exercises/book-store/description.md
trackler-2.0.8.32 common/exercises/book-store/description.md
trackler-2.0.8.31 common/exercises/book-store/description.md
trackler-2.0.8.30 common/exercises/book-store/description.md
trackler-2.0.8.29 common/exercises/book-store/description.md
trackler-2.0.8.28 common/exercises/book-store/description.md
trackler-2.0.8.27 common/exercises/book-store/description.md
trackler-2.0.8.26 common/exercises/book-store/description.md
trackler-2.0.8.24 common/exercises/book-store/description.md
trackler-2.0.8.23 common/exercises/book-store/description.md
trackler-2.0.8.22 common/exercises/book-store/description.md
trackler-2.0.8.21 common/exercises/book-store/description.md
trackler-2.0.8.20 common/exercises/book-store/description.md
trackler-2.0.8.19 common/exercises/book-store/description.md
trackler-2.0.8.18 common/exercises/book-store/description.md
trackler-2.0.8.17 common/exercises/book-store/description.md
trackler-2.0.8.16 common/exercises/book-store/description.md
trackler-2.0.8.15 common/exercises/book-store/description.md
trackler-2.0.8.14 common/exercises/book-store/description.md