Add day 6 solutions
This commit is contained in:
parent
8a6c1f679b
commit
e405118a5d
|
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
inputs = [
|
||||
[0,2,7,0],
|
||||
[0,5,10,0,11,14,13,4,11,8,8,7,1,4,12,11]
|
||||
]
|
||||
|
||||
def solve(puzzle):
|
||||
total = 0
|
||||
idx = 0
|
||||
states = []
|
||||
banks = []
|
||||
size = len(puzzle) - 1
|
||||
|
||||
banksstr = ''.join(map(str,puzzle))
|
||||
states.append(banksstr)
|
||||
|
||||
while states.count(banksstr) == 1:
|
||||
maxval = max(puzzle)
|
||||
maxidx = puzzle.index(maxval)
|
||||
puzzle[maxidx] = 0
|
||||
while maxval > 0:
|
||||
maxidx = maxidx + 1
|
||||
if maxidx > size:
|
||||
maxidx = 0
|
||||
|
||||
puzzle[maxidx] = puzzle[maxidx] + 1
|
||||
maxval = maxval - 1
|
||||
banksstr = ''.join(map(str,puzzle))
|
||||
states.append(banksstr)
|
||||
total = total + 1
|
||||
|
||||
return total
|
||||
|
||||
|
||||
for puzzle in inputs:
|
||||
print(puzzle, solve(puzzle))
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
inputs = [
|
||||
[0,2,7,0],
|
||||
[0,5,10,0,11,14,13,4,11,8,8,7,1,4,12,11]
|
||||
]
|
||||
|
||||
def solve(puzzle):
|
||||
idx = 0
|
||||
states = []
|
||||
banks = []
|
||||
size = len(puzzle) - 1
|
||||
|
||||
banksstr = ''.join(map(str,puzzle))
|
||||
states.append(banksstr)
|
||||
|
||||
while True:
|
||||
maxval = max(puzzle)
|
||||
maxidx = puzzle.index(maxval)
|
||||
puzzle[maxidx] = 0
|
||||
|
||||
while maxval > 0:
|
||||
maxidx = maxidx + 1
|
||||
if maxidx > size:
|
||||
maxidx = 0
|
||||
|
||||
puzzle[maxidx] = puzzle[maxidx] + 1
|
||||
maxval = maxval - 1
|
||||
|
||||
banksstr = ''.join(map(str,puzzle))
|
||||
if states.count(banksstr) == 1:
|
||||
states.append(banksstr)
|
||||
break
|
||||
states.append(banksstr)
|
||||
|
||||
lastidx = len(states) - 1
|
||||
lastval = states[lastidx]
|
||||
firstidx = states.index(lastval)
|
||||
|
||||
return lastidx - firstidx
|
||||
|
||||
|
||||
for puzzle in inputs:
|
||||
print(puzzle, solve(puzzle))
|
||||
Loading…
Reference in New Issue