1
0
Fork 0
advent2017/6/6p1.py

38 lines
799 B
Python
Executable File

#!/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
states = []
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))