Checken jullie de voorbeeldinvoer niet? Uit de opgave:FrankMennink schreef op dinsdag 12 december 2023 @ 13:09:
spoiler:Uiteraard ook tegen de 1000000 vs 999999 aangelopen, off-by-1 errorsHad wel al zo'n vermoeden dus kostte me een minuutje of te verifieren en dan wachten op de AoC cooldown
Lijkt me dat je eventuele off-by-one errors hier al zou moeten detecteren.In the example above, if each empty row or column were merely 10 times larger, the sum of the shortest paths between every pair of galaxies would be 1030. If each empty row or column were merely 100 times larger, the sum of the shortest paths between every pair of galaxies would be 8410.
(Ik weet dat ik ook niet altijd goed lees maar de gegeven test data check ik meestal wel.)
Inderdaad, heel erg praktisch! Maar je kunt 'm ook eenvoudig zelf implementeren. Bijvoorbeeld zo:spoiler:functools cache
Python:
1
2
3
4
5
6
7
8
9
| def cache(f): memo = {} def g(*a): try: return memo[a] except KeyError: memo[a] = r = f(*a) return r return g |
Of met iets betere performance:
Python:
1
2
3
4
5
6
7
8
9
| def cache(f): memo = {} dummy = object() def g(*a): r = memo.get(a, dummy) if r is dummy: memo[a] = r = f(*a) return r return g |
Overigens vind ik het ook mooi dat de meeste Python-programmeurs voor deel 2
spoiler:
het patroon hebben uitgepakt met'?'.join([s]*5)
Daar is in de meeste andere programmeertalen veel meer code voor nodig!