Create day23.py

This commit is contained in:
kamoshi 2020-12-23 15:02:21 +01:00 committed by GitHub
parent df3cd1967a
commit f238c38fbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

35
2020/Python/day23.py Normal file
View file

@ -0,0 +1,35 @@
def move_cups(cups: list[int]) -> list[int]:
cups_round = cups[:]
current = cups_round.pop(0)
taken = [cups_round.pop(0), cups_round.pop(0), cups_round.pop(0)]
minimum, maximum = min(cups_round), max(cups_round)
destination = current
while (destination := destination - 1) in taken or destination < minimum:
if destination < minimum:
destination = maximum + 1
for i in range(len(cups_round)):
if cups_round[i] == destination:
for taken_cup in reversed(taken):
cups_round.insert(i+1, taken_cup)
break
cups_round.append(current)
return cups_round
def solve_p1(order: str, n: int) -> str:
table = [int(x) for x in order]
for i in range(n):
table = move_cups(table)
for i in range(len(table)):
if table[i] == 1:
return "".join([str(table[x%len(table)]) for x in range(i+1, len(table)+i)])
return ""
print(solve_p1("389547612", 100))