summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2023-12-03 23:20:56 +0100
committerAndreas Grois <andi@grois.info>2023-12-03 23:20:56 +0100
commitcc75d1107a2f97eec91a3b81a2a918a669cc8511 (patch)
treeb44e66565fd18d5f22121a4c6fa719b0b14fc80a
parent85e7e293fc47a6aaed53b27c018c2c7256aab3ff (diff)
Day 3: Fix swapped adjacents.
-rw-r--r--Day3.lean22
1 files changed, 11 insertions, 11 deletions
diff --git a/Day3.lean b/Day3.lean
index 1cf1774..76c06be 100644
--- a/Day3.lean
+++ b/Day3.lean
@@ -13,22 +13,22 @@ def Coordinate.default : Coordinate := {x := 0, y := 0}
/--Returns the adjacent fields, row-major order (this is important)-/
def Coordinate.adjacents : Coordinate → List Coordinate
| { x := 0, y := 0} => [
- .mk 1 0,
- .mk 1 1, .mk 0 1
+ ⟨1,0⟩,
+ ⟨0,1⟩, ⟨1,1⟩
]
| { x := 0, y := y} => [
- .mk 0 y.pred, .mk 1 y.pred,
- .mk 1 y,
- .mk 0 y.succ, .mk 1 y.succ
+ ⟨0,y.pred⟩, ⟨1,y.pred⟩,
+ ⟨1,y⟩,
+ ⟨0,y.succ⟩, ⟨1,y.succ⟩
]
| { x := x, y := 0} => [
- .mk x.pred 0, .mk x.succ 0,
- .mk x.pred 1, .mk x 1, .mk x.succ 1
+ ⟨x.pred,0⟩, ⟨x.succ,0⟩,
+ ⟨x.pred,1⟩, ⟨x,1⟩, ⟨x.succ,1⟩
]
| { x := x, y := y} => [
- .mk x.pred y.pred, .mk x y.pred, .mk x.succ y.pred,
- .mk x.pred y, .mk x.succ y,
- .mk x.pred y.succ, .mk x y.succ, .mk x.succ y.succ
+ ⟨x.pred,y.pred⟩, ⟨x,y.pred⟩, ⟨x.succ,y.pred⟩,
+ ⟨x.pred,y⟩, ⟨x.succ,y⟩,
+ ⟨x.pred,y.succ⟩, ⟨x,y.succ⟩, ⟨x.succ,y.succ⟩
]
structure Part : Type 0 where
@@ -109,7 +109,7 @@ def part2 (schematic : Schematic) : Nat :=
let numbersNextGearSymbols := List.dedup <$> gearSymbols.map λgs ↦
gs.position.adjacents.filterMap numberCoordinates.find?
let gearSymbols := numbersNextGearSymbols.filter (List.length · == 2)
- let gearRatios : List Nat := gearSymbols.map $ List.foldl (· * PartNumber.value ·) 1
+ let gearRatios := gearSymbols.map $ List.foldl (· * PartNumber.value ·) 1
gearRatios.foldl (· + ·) 0
open DayPart