generated from public/aoc_template
day20 - formula simplification
This commit is contained in:
parent
3a3d018078
commit
dbd7c236a9
8
day20.py
8
day20.py
@ -5,15 +5,13 @@ from typing import Any
|
||||
|
||||
|
||||
def get_cheat_count(track: list[Coordinate], check_len: int, need_save: int = 100) -> int:
|
||||
total_dist = len(track)
|
||||
ans = 0
|
||||
for i, c in enumerate(track[:-need_save]):
|
||||
for j, n in enumerate(track[i + 2 :]):
|
||||
for j, n in enumerate(track[i + need_save :]):
|
||||
dist = c.getDistanceTo(n, algorithm=DistanceAlgorithm.MANHATTAN, includeDiagonals=False)
|
||||
if dist > check_len:
|
||||
if dist > check_len or j - dist < 0:
|
||||
continue
|
||||
saved = total_dist - (i + dist + (total_dist - i - (j + 2)))
|
||||
if saved >= need_save:
|
||||
|
||||
ans += 1
|
||||
|
||||
return ans
|
||||
|
||||
Loading…
Reference in New Issue
Block a user