From: Ben Harris Date: Sat, 11 May 2024 09:58:31 +0000 (+0100) Subject: 11a and 11b done X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=2ba091a5bb09e3cb21c01a7939d5b29f043bde04;p=aoc-2022.git 11a and 11b done --- diff --git a/11/11a.bqn b/11/11a.bqn new file mode 100644 index 0000000..0b50b4d --- /dev/null +++ b/11/11a.bqn @@ -0,0 +1,46 @@ +Split←{ + blocknums ← +`𝕨 + # Set entries in blocknums to -1 when they correspond with delimiters. + blocknums ↩ (¯1¨)⌾(𝕨⊸/) blocknums + blocknums⊔𝕩 +} + +Monkey←{𝕊desc: + items←{𝕩∊", "}⊸Split(18↓1⊑desc) + items↩•ParseFloat¨(⟨⟩⊸≢¨items)/items + op←' '⊸=⊸Split 19↓2⊑desc + divisor←•ParseFloat 21↓3⊑desc + iftrue ←•ParseFloat 29↓4⊑desc + iffalse←•ParseFloat 30↓5⊑desc + count⇐0 + Catch⇐{items∾↩⟨𝕩⟩} + Inspect←{ + ⟨"old","*","old"⟩𝕊old:old×old; + ⟨"old","*",n⟩ 𝕊old:oldוParseFloat n; + ⟨"old","+",n⟩ 𝕊old:old+•ParseFloat n + } + Relieve←{⌊𝕩÷3} + Turn⇐{𝕤 + {𝕊i: + count+↩1 + i↩Relieve op Inspect i + (((0=divisor|i)⊑⟨iffalse,iftrue⟩)⊑monkeys).Catch i + }¨items + items↩⟨⟩ + } +} + +monkeys←@ + +Prep←{ + monkeys↩Monkey¨(""⊸≡¨𝕩)Split𝕩 +} + +Main←{𝕤 + {𝕤 + {𝕩.Turn @}¨monkeys + }¨↕20 + ×´2↑∨{𝕩.count}¨monkeys +} + +•Show Main Prep •file.Lines ⊑•args diff --git a/11/11b.bqn b/11/11b.bqn new file mode 100644 index 0000000..ccc3c66 --- /dev/null +++ b/11/11b.bqn @@ -0,0 +1,46 @@ +Split←{ + blocknums ← +`𝕨 + # Set entries in blocknums to -1 when they correspond with delimiters. + blocknums ↩ (¯1¨)⌾(𝕨⊸/) blocknums + blocknums⊔𝕩 +} + +Monkey←{𝕊desc: + items←{𝕩∊", "}⊸Split(18↓1⊑desc) + items↩•ParseFloat¨(⟨⟩⊸≢¨items)/items + inspect←{ + 𝕊⟨"old","*","old"⟩:{𝕩×𝕩}; + 𝕊⟨"old","*",n⟩ :{𝕩וParseFloat n}; + 𝕊⟨"old","+",n⟩ :{𝕩+•ParseFloat n} + }' '⊸=⊸Split 19↓2⊑desc + divisor⇐•ParseFloat 21↓3⊑desc + iftrue ←•ParseFloat 29↓4⊑desc + iffalse←•ParseFloat 30↓5⊑desc + count⇐0 + Catch⇐{items∾↩⟨𝕩⟩} + Turn⇐{𝕤 + {𝕊i: + count+↩1 + i↩worrymod|Inspect i + (((0=divisor|i)⊑⟨iffalse,iftrue⟩)⊑monkeys).Catch i + }¨items + items↩⟨⟩ + } +} + +monkeys←@ +worrymod←0 + +Prep←{ + monkeys↩Monkey¨(""⊸≡¨𝕩)Split𝕩 + worrymod↩×´{𝕩.divisor}¨monkeys +} + +Main←{𝕤 + {𝕤 + {𝕩.Turn @}¨monkeys + }¨↕10000 + ×´2↑∨{𝕩.count}¨monkeys +} + +•Show Main Prep •file.Lines ⊑•args