From 2ba091a5bb09e3cb21c01a7939d5b29f043bde04 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sat, 11 May 2024 10:58:31 +0100 Subject: [PATCH] 11a and 11b done --- 11/11a.bqn | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 11/11b.bqn | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 11/11a.bqn create mode 100644 11/11b.bqn 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 -- 2.30.2