SHOW:
|
|
- or go back to the newest paste.
| 1 | # answer is 43! | |
| 2 | nuggets = [] | |
| 3 | # available sizes ordered from lowest to highest | |
| 4 | size = [6,9,20] | |
| 5 | # we know that 50 sets of McNuggets is possible | |
| 6 | maximumSets = 50 | |
| 7 | # we will have to test at least maximum sets divided by lowest size | |
| 8 | checkUpTo = maximumSets / size[0] | |
| 9 | ||
| 10 | for i in range(0, checkUpTo): | |
| 11 | for j in range(0, checkUpTo): | |
| 12 | for k in range(0, checkUpTo): | |
| 13 | - | # we remove duplicates |
| 13 | + | # we add all possible sizes being checked |
| 14 | nuggets.append(i*size[0]+j*size[1]+k*size[2]) | |
| 15 | ||
| 16 | # we remove duplicates and sort | |
| 17 | if nuggets: | |
| 18 | nuggets.sort() | |
| 19 | last = nuggets[-1] | |
| 20 | for i in range(len(nuggets)-2, -1, -1): | |
| 21 | if last == nuggets[i]: | |
| 22 | del nuggets[i] | |
| 23 | else: | |
| 24 | last = nuggets[i] | |
| 25 | ||
| 26 | # at the beginning n is lowest possible nuggets size | |
| 27 | n = nuggets[0] | |
| 28 | count = 1 | |
| 29 | for i in range(1,len(nuggets)-1): | |
| 30 | # we add + 1 to counter if next number is following after current | |
| 31 | if n + 1 == nuggets[i]: | |
| 32 | count += 1 | |
| 33 | else: | |
| 34 | count = 1 | |
| 35 | n = nuggets[i] | |
| 36 | # if next number follows current one 6 times we got answer | |
| 37 | if count == 6: | |
| 38 | print n-6 | |
| 39 | break | |
| 40 | n = nuggets[i] | |
| 41 | ||
| 42 |