feat(sterni/aoc/2021): day 2 "solution"
Change-Id: Ifbd50274f0b09305991a49e7453ac1f13089e57e
This commit is contained in:
parent
b97d6b0f1b
commit
4b38ba2d0a
1 changed files with 41 additions and 3 deletions
|
@ -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 ← 199‿200‿208‿210‿200‿207‿240‿269‿260‿263
|
||||
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⊸⊑))¨ (<0‿0‿0) (⊢∾((⊑∘⌽⊣)+(⊑⊢)))` ParseSubmarineCommand¨𝕩
|
||||
}
|
||||
|
||||
! 900 = SubmarineAimedDestProduct day2ExampleData
|
||||
|
||||
•Out "Day 2.2: "∾•Fmt SubmarineAimedDestProduct day2Input
|
||||
|
|
Loading…
Reference in a new issue