feat(sterni/aoc/2021): day 2 "solution"

Change-Id: Ifbd50274f0b09305991a49e7453ac1f13089e57e
This commit is contained in:
sterni 2021-12-04 01:09:55 +01:00
parent b97d6b0f1b
commit 4b38ba2d0a

View file

@ -4,9 +4,11 @@
# Utilities
#
IsAsciiNum ('0''9')
ReadInt (10×+)´-'0' # stolen from leah2
ReadInput {ReadInt¨•file.Lines •path"/input/day"(•Fmt 𝕩)}
ReadInput {•file.Lines •path"/input/day"(•Fmt 𝕩)}
#
# 2021-12-01
@ -15,6 +17,7 @@ ReadInput ← {ReadInt¨•file.Lines ∾ •path‿"/input/day"‿(•Fmt 𝕩)
# part 1
day1ExampleData 199200208210200207240269260263
day1Input ReadInt¨ReadInput 1
# NB: Because distance from the ground is never smaller than zero, it's
# no problem that nudge inserts a zero at the end of the right list
@ -22,10 +25,45 @@ PositiveDeltaCount ← +´∘(⊢<«)+˝˘∘↕
! 7 = 1 PositiveDeltaCount day1ExampleData
•Out "Day 1.1: "•Fmt 1 PositiveDeltaCount ReadInput 1
•Out "Day 1.1: "•Fmt 1 PositiveDeltaCount day1Input
# part 2
! 5 = 3 PositiveDeltaCount day1ExampleData
•Out "Day 1.2: "•Fmt 3 PositiveDeltaCount ReadInput 1
•Out "Day 1.2: "•Fmt 3 PositiveDeltaCount day1Input
#
# 2021-12-02
#
# part 1
day2ExampleData
"forward 5",
"down 5",
"forward 8",
"up 3",
"down 8",
"forward 2",
day2Input ReadInput 2
ParseSubmarineCommand (((2)((((-1))(2|))×(=((÷2))))("duf"))×ReadInt(IsAsciiNum/))
SubmarineDestProduct {×´+´ParseSubmarineCommand¨𝕩}
! 150 = SubmarineDestProduct day2ExampleData
•Out "Day 2.1: "•Fmt SubmarineDestProduct day2Input
# part 2
SubmarineAimedDestProduct {
×´+´((×´)(1)(1))¨ (<000) ((()+()))` ParseSubmarineCommand¨𝕩
}
! 900 = SubmarineAimedDestProduct day2ExampleData
•Out "Day 2.2: "•Fmt SubmarineAimedDestProduct day2Input