adventofcode

https://adventofcode.com/
Log | Files | Refs

commit effce69a0ba285e2901cec1dd0a7f12b99d55530
parent 15a46e5ab583238411bec94a1c1af97c43e96a48
Author: mpizzzle <m@michaelpercival.xyz>
Date:   Fri, 17 Dec 2021 21:06:24 +0000

puzzle 14 part 1 complete (GNU APL is some nonsense)

Diffstat:
A2021/files/14-test.txt | 18++++++++++++++++++
A2021/files/14.txt | 102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2021/puzzle_14.apl | 14++++++++++++++
3 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/2021/files/14-test.txt b/2021/files/14-test.txt @@ -0,0 +1,18 @@ +NNCB + +CH -> B +HH -> N +CB -> H +NH -> C +HB -> C +HC -> B +HN -> C +NN -> C +BH -> H +NC -> B +NB -> B +BN -> B +BB -> N +BC -> B +CC -> N +CN -> C diff --git a/2021/files/14.txt b/2021/files/14.txt @@ -0,0 +1,102 @@ +FPNFCVSNNFSFHHOCNBOB + +ON -> S +SO -> B +OH -> C +SN -> F +BP -> O +SK -> F +OO -> K +CF -> O +PP -> F +KS -> K +KN -> B +BN -> H +HN -> H +NP -> P +BB -> N +SB -> F +BH -> V +NV -> S +PO -> S +CN -> N +VP -> B +HH -> B +NB -> V +NF -> O +BV -> B +CV -> B +SS -> H +CB -> C +VN -> S +FH -> K +BF -> H +NH -> P +PV -> K +OP -> F +HO -> N +SH -> C +VH -> P +VK -> B +OF -> F +KK -> B +SC -> H +CO -> S +BK -> V +PF -> B +OK -> K +FO -> V +CH -> O +KO -> B +CS -> V +OC -> P +SP -> V +KF -> C +HV -> S +KH -> B +VS -> K +KB -> F +FF -> P +VF -> H +NC -> S +HB -> V +NN -> C +FV -> B +PH -> V +KV -> C +PB -> C +OS -> O +PS -> H +FS -> N +FP -> O +VV -> O +FN -> V +NO -> K +NK -> V +OB -> F +PC -> O +OV -> H +FK -> C +HS -> F +SF -> N +VC -> C +BS -> N +PK -> O +FB -> S +CK -> B +KP -> N +KC -> F +BC -> F +HK -> H +VO -> O +NS -> B +VB -> K +FC -> K +SV -> O +HF -> H +HC -> C +CP -> O +CC -> P +PN -> P +HP -> C +BO -> F diff --git a/2021/puzzle_14.apl b/2021/puzzle_14.apl @@ -0,0 +1,14 @@ +#! /usr/bin/apl --script + +input← ⎕FIO[49] 'files/14.txt' + +pad← {(1 -⍨ 2 × ⍴ ⍵) ⍴ ∊⍵,¨' '/⍨⍴⍵} +r← {((↑↑⍵),' ',↑⌽↑⍵) (↑⌽⍵)} ¨ {⍵⊂⍨~⍵∊'-> '} ¨ 2 ↓ input +s←{∊ a ({((3-⍨⍴y)↑y),,/(3-⍨⍴y)↓y←1⌽(⊂1⍴⍺),⍨¯1⌽⍵} ⍣ d) (1↓(d←(' '≠a←↑⌽⍺)×+/⍵ ⍷⍨ ↑⍺),⍵⊂⍨~¯1⌽⍵ ⍷⍨ ↑⍺)} +c←({s/r, ⊂ pad ⊃ ⍵} ⍣ 10) 1 ⌷ input + +(↑⌽f)-⍨↑f←o/⍨0≠o←l[⍒l←{+/+⌿⍵} ¨ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ∘.= c] ⍝ part 1 + +)OFF + +