mirror of
https://github.com/jcreek/advent-of-code.git
synced 2026-07-13 03:03:46 +00:00
feat(2024-04): Add partial day 4 part 1 solution
This commit is contained in:
@@ -0,0 +1,140 @@
|
|||||||
|
SMMSSSSXSMMXSXMMSASXSMSMXMXMMMSASXMASXMMMSSMMXMSMXAAMSAMXMSAXSXMMAMXXAXXAAMAXSMSAMXSXXXXXXMXSXAXSXXSSSMAXMMSMMMSMSAMXSAMXMAMSXSASMXXAMXMXSSX
|
||||||
|
XAAAAAAASASAMXSAMXMAMAAXAMMSAXSAMAMASXMASAAAMMMMMSAMXMAXAMMMMXASMXMSMSMMMSMSXMASXMASXMSSSXAASXMASMMSASMMSMAAAAAMMXMXSMASMSSXAAMAXAAMMSXSAMXM
|
||||||
|
SMMSMMMMSAMAMAMASAMXMXMMMSAMMMMAMMMAMXSXMXMMMAAAMAMXSXSSXSAAASMMMMAAAAXAAAXMAMAMXMASAXAAXMMAMAXAMAMMAMXAAMSSSMSSMAMSXMAMMAMMMSMMMSMSAAMMAMSA
|
||||||
|
XXMXMMXAXXMMMXSAMAMXSXMASMXSXASAMAMXSMMMSSXASMSXSAMXMAMMASXSMXMAAMSMSMSMSXXMAMXMXMAMMMMXMMMSSXXMSSMMXMMSMXAAAAAAMAMMAMSSMMMAAAASAAAMMSMSAMXS
|
||||||
|
MSAASXMMMSAMXMMMSXMASAMMSAMXMXMASAXAAAMAAXAMXXAXSMMAMAMMAMXXMAMMMXAAAAXAXXMSSXSMMMASMXSASXAMMMMAAMMMMXAXMMMMMMXSSSSMSMAAMASMSSSSSMXMSAMXSXAA
|
||||||
|
MMSXSASAAXMAMXAMXMMASAMXXXMAXAMXMMMSSSMMSSMMSMMMMMSMXAXMMMSMSMMAMXMSMSMMMXXAXAMAAMMMXASAMMXMAMXAXSAAAXSXMASAMXMAAXMAMSMSMMMAMMMMXSMXAMMAMMXS
|
||||||
|
MAMXMAMMSSSMSSMMASMASAMXMASMSMSAXXAAAXMXAAAAMASMMAAMXXSASAXMAMMAMAXMAMMMAXMAMMMMSMMAMXMMXSASMMMASMMSMMAMXASXMSAMMAMXMSXAMXMAMXXAAMMAMXMASMMX
|
||||||
|
MASAMAMXMMAAAAASASMAXMMMMXAAAASMMXMMSMMSXSMMMAMAMSXSAXXAMMMSAXXSSMSAAMAMSSMSMXMAAMMXSMXXXMAXSAMXMXXMASASMASAMXSXXAMMAMMSXSXSMSAMXSASXAMMSAAX
|
||||||
|
SASAMSSMMSSMSSMMMXMXMSASMSMMMAMAMSAXAAAAAXASMSSXMMAMMXMAMXASXSMMAASMSSXMXAAXMASMMXSAAXSSSMSMSMMSSSXMAMAMMXMMSSMXSAMMAMXMASAMASMSASAMSSMXSMMS
|
||||||
|
MASAXMAXAAAXAAXXMAMMMSAMXAXAMAMAXMASMMMMMSAMAXMMXMAMXXSAMXXXMAXMAMMXAXMMMMAMXASASAMMSMSAAAMAXXXXAAXMSMMMSXMAMMMXXMXSAMAMAMAMXMAXAMAMAMXXMMAS
|
||||||
|
MMMMMXAMMSSMSSMASAMXAMXMMMSXSXSMMSASXMSMMMAMXMAAXXMSMMMAMSMMMMXMXAMXMAASAMASMASAMSXMAMMSMSMXMXMMMMMMAAAAAAMASMXAXSASASMMSXSMAMXMXMMMXMXMAAXM
|
||||||
|
XAAXXMMMXXXMAAXAMXMMSSMSAAXAXMAXAMMSAASASMSMSSMMXXAAAXSSMSASASAMMMSASXMSMSASMAMAMAMSMSAMXAMAMXXAAXXMSSMSSXSMXAMXXMASXMAAMAXMMXAAMSXSASMMAMXX
|
||||||
|
SSSMMAAMMXAMSMMMSMXAAAASMMMSSSXMXSMSXMSAMXAXAXAASXSSMMXMASASASASAXSXMAAXMMASMXSAMMMAAMXMSXXAXAMMXMSXMAMXMAMAMSSSXMAMAMMMMAMAMMSSMMMSAMASXSSS
|
||||||
|
AMMMASASMMXMXAAAAAMAXMXMASAAAXXMAMAMSXMXMXMMMSMMSAAAASXMAMXMASMMXMSASMMMXMMMXXMASXMMSMMXSSSSSSSMSAMXXMXAMAMAMMAAAMASAMASMMMSMAXMMMAMAMXMAAAA
|
||||||
|
XMAMMMAMXSSMSXMSSMXSXXSSMMMMSMMMAXAMXMMASASAXAMAMMMMMXAMXSMMMMAXXXSAMMSMASASXMSMMAMAMAXXMAXAAAAAMMAMMXSMSASMSMMMSSMSASASAAAAMXSAXMASMMXMMMMX
|
||||||
|
MSMSAMXAMXAAAXMXMAAMMMXAXAXXAAAMMSMSAXSASAMXMMMXSXSXXXAMASAASMMMMXMMMXASXSMSAXAASXMASXMXMMMMMMMMMSSSMAAASXSXMAAAXMMSAMXXXMMMXXMAMSXMASXMXMXM
|
||||||
|
MAAMXMMSXSAMMSXAMMMMASMSMXSMSXMSMAMXAMMAMAMAMXMSMAMXXXXSAMSMSAMAXSAMMSMSXMXMMXSMMAMASAMXMAAMXMSXXAAAMXMMSMMMSSMXSAAXAAMMMSXSAAMXMXASXMSMAMAA
|
||||||
|
MMSMMAMMAMMAXXMXMAASMSAAXASXXXSAMMSMMASMSASASAMAMXMAMSMSXMASMXMAMMAMXMMMMMAMXAMXSAMXSAMXSSSSXMASMMSMMMMXMAAAAAXXXMMXMMSAAAASAMXAMSMMMXXSAMAS
|
||||||
|
SXMASMMSAMMAMAMSSSXSAMXMMMXASMXXXAXAMXMASASASXSAXXMASAAMSAMXXXMXSMXMASAXASASMASASXSXSAMXXXAXAXSSXAAMAAXASMMSSSMSMAXMSASMSMMMAMMXXAAAMSXSMSMX
|
||||||
|
MXSAMAASXXXAMAXMMMAMXMAXXAMMMMSSMSSSMAMMMAMAMXXMSMMXSMSAMXMMSMSAXMASASASASAXMAMAMAXXMAMMMMMMSMMMMSXSSMSASXMMMXAMMSSXMASXAXXMAMXSSXSAXSAXXAMX
|
||||||
|
SMMMMMMMAMSSSXMXMMMMAXSSMXXMAXAAAAXMXXMXMXMAXXXMAXMAMAMMSASXMAXASMXMASAMMMXMMSMSMMMMSMMAAAAAXAAMXXAAAAMXMXXAAMMMAAXMMMMXMAMXAXAXAMXMAMXMXASX
|
||||||
|
MAASMXAMAMSAMXAMXAASXMASMAMMMMSSMSSSMSMXXXSXMMMSAXMXSASXSASAMSMMMXAMAMXMMAAXXAAMAMAMAMSMMSMMSSMMAMMMMMMMXSSMSSXMMSSMAAMMSAMSXMXMXMXSSMASMAMM
|
||||||
|
SSMMAXSSSXMAMXXAMMXAAMAMMXSAMXXXXMAXAAXAMXMAMSAMMSSMMASAMXMXMAAXASXMAXAXMASASMSSMMAMSMSAXAAMXAAMSSMXXXAXMMAMAMAXMMMMSXSAXAMAXSASASAMASAXMAMS
|
||||||
|
XMMXMMXMMASMMSASAMMSMMXSAAMASXXSMMMMSMSXMASAMMAMSAMXAAMMMASMMSSMMSASMSSSMXAAXXAAXSASXAMMSMMSAMXMAAXXXSMSXSAMASMMMASXMAMXSXMSXSASMMASAMXSXSAA
|
||||||
|
MMAASXXMXXMAASAMMXAMSSXMMSSMSMMMMAMMAXMASASMXMXMMAXSMSSXSASAAMAXMMXMAAAAAMXMASMSMSXSMSMMAMSAXXAMMSMMMMAAMSXMXSXASASMMSSMMXMMAMAMXSXMAMXSAMXS
|
||||||
|
AMMXSAAMSMSMXSXMXMASASAMXXAAMAAAXAMSAMSAMASMMSAMMSMSAMXAMXXMMSAXMMSAMMSMMAAMXASMAXAMAMXMMXXAXSASAAAXAMXMMXMASMMXMASXMAMAASXMMMXSAMASAMSMXMAM
|
||||||
|
SSMMMMAMAAMSAMXSXMXMMMMSMSMMMSSSSMMSXMAXMXMAASASAAXMAMMSMSXMAMMSMAAAAMXXXSASMMMSSMAMSMSSSMSSMMAMMXSXMMMSMSAXXAASAMXXMASMMMSMXXXMASMMAMAAAMXS
|
||||||
|
XMXAAXAMMXMMMSASASXSXSASXXAAAMXMAMAXAMXMSMMMMSAMMXMXAMMMAMMMAXSAMAXMMSAMXXXMAXAAXMXMAAAAXAAMAXSMSAXMAAAAMMSMSXMXAMXASASMAXAXXMXSXMASXMMMAMXM
|
||||||
|
SMSSSSSMSAMXMMASXMASAMAXMSSMSSSSMMSSMMAAAXMAAMAMXXMSSSMMAMMSMSMMXXSXXXAMAMASMMMSXSSMMMMSMMMXMMMAMASMSMSXSAAXMMSSMMSXMASXSSSSSMXMASXSMASMMSAA
|
||||||
|
AMAAAAAASMSMXMMMAMAMAMXMXXXAAXXAAXMAXAASMSSMMSMMXSAAXAASMSMAMAAXAMXMMMAMASMMXXMAXAAAAXXXAMXXSMMAMMMAAAAAMXXXSAAAAASAMXMAXAXAAAASXSAXXMMAASMS
|
||||||
|
MMSSMMMXXXSMAXAMXMSSMMXXXAMMMSSMMMSAMXMXXXASMAAAAMMSMSMMAAXASMSMMSXAMMMXASAAXMXMASMMMXXMSSMMMASMSAMMMMMXMSXMASMSMXSAMSMSMMMSMMXMAMAMSXSMMMXA
|
||||||
|
XXAXXXSMMMMSMSMSMMMXAMXMASASAAMXAAMAMMMMMXAMSSMMMSAAAXMMMMMMMAXMAAMXMASMXSXMMSAMXMMSMSAMAAAAXXMXSXSMSSXSAXMSAMXXMASAMXAAXAAAXMAMXMSMMAXSAXXX
|
||||||
|
SMMSMXXAAAMAMAAAAAMMXSAMXXAMMSSSMXSAMAAAMMMMAMAAMMXSSMXSASMSMSMMSXMAMASAMMAXXXASMSAAAAMMMSXMSMXXSAMXAAXMAMXMMSSMMMSXMMSMSMSSXMAMMXMAMSMMMSSS
|
||||||
|
XAXAXMSXMMSASMSSSMSMMXAXSMAMAMAMAAXAXSSMSAAMMSMMXXAXAAXXXMASAXXAXASASMMMAXMMMSAMXMMMSMXMMMXXAAMMMMMMMXMSAMXXSAMAAXSMMXMMMMAMMSSSMAXAMMXSMAAX
|
||||||
|
SAMMSAASMXSXSAAAMAAXXMSMXAAXAMAMMMXSMMAASMSSXSXMXAMXMMMXMMMMMMMMSXMASAAXSASAXAMAMMAMXXXMASAMMXMAAAMASAMXAXXXMASXMSMAMMMASMAMXXMAMXSMMAAXMMSM
|
||||||
|
XAAASMMXMAXAMMMSMSMSAAMAMSXSXSMMMMAXAMMMMMMMAXAMXSXMMAXAMAAAAXAAMAAASMMMXMMAXMMMASMSMSSMASXAAAMSSMSASASMMMMXSAMMMXXAMXXAMSMMAXSXMMAMMMMSAMXA
|
||||||
|
SSMASXXMMMMMMAXAXAMXMMMAMMAXAAMXSMASAMXMASAMXMMMXMAXSASMSSSSSSMSSMMMSXMASAMXMXASXSXAAAXMASMMMSXXAMMASAMAAAXXXMXAMXMMSSMMMASAMXMAMXAXXAASAMXS
|
||||||
|
XAMXMXMAAAAAXXSSSXSAAMSMMMMMMMSAAMASAMXSASXMSAXAXSAMAXSAAAMAAAMAAXSXSAMASAMSMXMXAXXMMMSMAMAMXMAMXMMMMASASMSAAMXMSMSAAAAXMAMXMASASMMMMMXSAMXX
|
||||||
|
SXMAMASMXSSSXXMAAXMXSAAXXAMXMAMMSMASAMXAMMMXMAMMXMMSXMMMMSMMSMMSSMXAMSMMSAMAMASMMMSXAMXMMSSMSMMAXXXAMAMXAMXMASAMSAMMSMMXMSMXSASMMAXAAXAMMMXM
|
||||||
|
SMSXSASMXMAMMMMMMMMAMXMMMMXAMASAMMASAMSAXXSASAMXAAASAMMSAMAXMXMMXAMXMASAMXSMSASXSAASASAXMAXAMAMSMXXMMSSXMSMXAXASMAMAXAXMXAXMMASMSSMSXXAMSSSX
|
||||||
|
XAAMMXXMAMAMSAMAXAMASAMXSMMASMMMMMMSAXSMMMXAMSSXXXMSAMASASXMSXXMMMMMSMMXAMXAMASAMMMMMSMSMMXMXAMAMMMXAAMMXAMMSSMMMMMMSXMMSMSMMAMAAMAMSMAMAAMS
|
||||||
|
MMMSSSMSSSMXSASXSXSXSASMASXMMMASMMXMMXSXAMMSMMMXSAASXMAMMMMAMXMSMAAXAXMMSXMMMXMXMMXXAXXAAAASMMSAAAMMMMSMSASAAAMAAXAAMAAAAXAXAMMMXXSAXSMMMMMA
|
||||||
|
ASAAMAXAAAMAXXMASASXMXSASASAASASAMXAAMMXXSAXAAAAXMMMAMXSSSMSMSAAXSXSASXAMXAXXAXAXMMMXSMSMMMSAMSMSXSAMAAXAAMMSSMSMSSSMSMSSSSSXXAMXSMMASMXSXAM
|
||||||
|
SAMSSMMMSMMMSMMMMAMMMAXXXAXSMMMSAMSAMXAASMMSMMMMXMASMMAMAMAXASMMXXXMMMMMSASXSMSAMMAAMAAAXSASAMXAXAAAMSSMXMAXAXAXXAAMAMAMMAMXASASXXAMAXXAXSXX
|
||||||
|
AMSAAXAMAAASAMASMXMAMXSSMXMASAAXAMXSSMMXSAXAXSMSMSAMXMAXAMXMAXXMAMXSAAASMXMXMXAAXSMMAMXMSMAXXMMMMAMMMXAAXXSSSMSMMMSMAMAMMSMSMAAMXSXMASMSMMMM
|
||||||
|
SXMMSMSSSSMSASASMSSMSAAXMSXXSMSSSMAXMASASXMASMAAAMMMAMSSMMXMAMSMMSAMSXSAMMMMSASMMSMSMXMXXMSMSMXSAAXSMMMXSAMXAAAMXMMMMSXMXXASXMASMMXSXMXMAMXS
|
||||||
|
MSSXXAAXMAMXAMASAXMASMMMXSXMXAXAXMXMSSMMMMAXAMMMSMMMAXXAMSAMASXAMMMMMMMASASMAAMSAXAAASMMSAMXAAMXSXXSAAXSXMAAMMMMASXAXMAMAMAMXSASAMASAAAMAMAA
|
||||||
|
MAMAMMMMSMMMMMXMMMMAMAAMASAMMXMAMXMAMAMMSSSXSAMXXXAMSXSAMMASXSMMMAXAAXSAXAXXMXXMSMMMSAAAMAMSMSMAXMXSXMMMASXMXAXSASXMMSAMAMXMXMAXXXAMMMMSSMMS
|
||||||
|
MAMMSMXXAAMMMSAMASMSXMXSASAMAAMSMMSXSAMAASMAMAMMMMMMMAMSMSAMAXAXSMSSSMSXMSMXXXXMAXXXMXMMMAMAXXMASMAMXSMSAMASXSXMASAMASXSAMMXXMAMSMMSASAMXAXX
|
||||||
|
SXXMAAASMMMAASASXSAMMSAMAXMMSSSMAAAAXMMMMSMAMAMASAMXMXMAXMASXSMMAMAMMAMXXMASXSMSASXXMASMSMSMSMMASMMSASAMXSAMXXMXMSAMXXXXAXASAMASAAASAMXSSMMM
|
||||||
|
SMSSMSMAASMMXXAMAMAMXAAMXMSAMXAXMMSSSMXSAXXSXMSXSSSXSAMXXSAMMAMAAMXSMAMXAXSMAAAXXMMAMXXXAMXAAAMMSAMMXMASAMXSXMSAASXMSMSXSMSXMMSSMSMXXAMXAMAM
|
||||||
|
SAAXXXXSAMXSAMXMSMSMXSXMAXMASMSMXAAAAAAMMSXMAMAAMAMMMAMSMMSXAAXXXMMXMMXSAMXMSMMMMXSMMSMSMSMXMXMXMAMSAMXMMMASAASMMMAMAASAMSMAMXXMXMAMSMASXSAS
|
||||||
|
MMMMMXMASMXMASXAXAXMXMAXMMAMXAXAMMSSMMMSXMASAMXAMAMAXAMAXAMMSMSSSXMSXMAMASAMXAAXMAMXAAAAAXMASMSSSMMMMMSMASAMMMMXXSXXMMMAMASAMXMMAMXMAXMXXSMS
|
||||||
|
XAAAAMAMASAXAMMMMSMXASMMSAMMMMMXXMAMAXXAASXSXMXSSMSASXXMMASAAAMAAMXMAXAMASASXSMMSASMSSSMSMMMXAAAAXXXAAAXXMSMMXAXMXSMMSMMSMMMXMASXSXSSSSMMXSS
|
||||||
|
SSMSXSASXSXMSSMXAAXSXXAAXAAXXAXXXMASMSXSAMXMASAMAXMAXXAXSXAMMMMMMMSSMMAMAXMMAXAASAMAAMAXXAAAMMMXMMMMMSSSXXAMSMMMSAMMASAASXMAAMXMXSXAAAMAASAM
|
||||||
|
MXAAASASASASXAXMMSXMMSMMXSMXSMMMXXXAAAMXAMXSAMASMMMMMSXMASMASAMXSMXAASXMXSSMMMSMMAMMMXXMASMXSAAASXSAAXXAXSMMXAAMMMMAASAMMAMSMSAMXXXMMMMSMMAA
|
||||||
|
XMMMXMAMAMMSMMMSAMASAAAXXMXMAAASMMSMMMAMAMMMSSXMXSXAAAAMXMMAMAMASMMSMMAMXAXAAAXXSAMXMXSMMMMMMMXXMASMSMXMXXXASMMSMXSMMSXMXXMAXXAXSMMXAAXXXSAM
|
||||||
|
MAAMMMSMAMXSAMAXASMMSSSMXMAMMSMSAMXASXXXAMAAAXMSAMXMSSXMAAMMXAMMSAAAASAMXMXSMXMASASMSAAAXXAAXMSSMAMAAAASMSMMSAMXXAMXMMXSXXMASXMMAAASXMAXAMAM
|
||||||
|
AMXXSAAMASASAMXSAMXAXMAXASAMXXMSMMSMMMSSSSMSMMAMASXMXAMSSSMMSASASMMSXSMMAXAMXSXMSAMAMXSMMSMMXSAAMAMMMMMXAXMASMXSMMSXSAAXXMXXXAMAMSMXMASMMSAM
|
||||||
|
SXSXMMSXMMASAMXMXMMMSXMSMSXSSSMSAMXAAXMAAXAAXAMSAMMXSAMMXMXMASMXSAAAAMAMMMXSAMAMMXMXMAXAMXAAXMMMMSSSSMSMSMAMSXAMAAAAMMMSAAMMSMXMXMAMMMXAASAS
|
||||||
|
MMMASAMAXMAMXXMMAXSASXAMMMAXAASXXMASMMMMMMSMSMXMASAMSAMXAMXSSXMXSMXSMSAMXMXMASAMAXSXMXSAMXMAMSSXAMMAAAXMAMASMMMSSMMXMASMMMAAXXMASMMXXAMMMSAM
|
||||||
|
AASAMASXMMMMMMAXMXMASXMXAMSMSXMXSXMASXXXSXMXSMXXAMXXSMMMXMAXMASMMSXMAMMSAMXMAXASASMMMAXMMMMXXAAMMSMSMMMSASXSASAAMAMXASAMXSMSSMAMASMAMSSMXMXM
|
||||||
|
SXMAMMMXMASAAMMSSSMAMASMASXAXASASASAMXXASASASXMASMMXXAAXAMSXSAMXAXMMAMSSXSAMAMMMMXMASXMSXSAMMSMMMSAXXAXSASASAMMSSSMMMMAMXAXAAXSMAAMAMXAMXMAS
|
||||||
|
MXSSMMAMSASMXMAAXAXASAMXMMMMMAMASMMMSMMMSAMASMMMMAMMSSMMAXAXMASMSSMSXSAMXXAMAXMASASXMAXXAMXMAMAXAXXXSSMMAMAMXMXAMXAMXSAMMXMMXMXMAMXSMSAMSMAS
|
||||||
|
XMAMMMAMMMSASMMMMXMMMMMASMSSMMMXMMAAAAMXMAMXSAAAXAMMAAMASMMMSAMXAAMSSMMSMSMMSMSAMASMMXMMSMSMSSSMSSMMAMAMXMXMXXMSMSMMMMAXAAXSMSMSSXMAAAXMXMAS
|
||||||
|
SSSMSMXSAAMAMXAXXXXMASXMSAAMMMMXMXMMSXMASXMAMMMMSSMMSSMAXAXAAAXMXXMXAXXMAMXAAAMAMSMAASMXMAAXMAAXMAMSASXMXMAMMMMXAXSAAMSSSMXAAAAXXASMSMMSXMAS
|
||||||
|
AAAAAAASMMMMMSXMSAASXMAAMMMXAAMASXSMAMSXMSMXMAXXXMAMAMMAMXMASMMSSMAMXMXMAMMMSSMXXAMSMMAAMSMSMSMMSAMMMSXSMSXXAAAMMMXXMXAMAXSMSMSMSAMAXXAMAMXS
|
||||||
|
MSMMMMMMXAXMASXAXXXMMMMMMMXMSXSASAMMAMMAMXMXMASMSMSMXMXXSASXAAXAAMSMSAXSAMAMAAAXSMMMXMMMXAXAAAMXSAMAXMASAAAXSMMSMSSSMMSSSMAXXXAAXXMXMMSSXMXX
|
||||||
|
MAXSXSAXSMSMASMSMSMMAASXSMXAAAMAMAMSSMMASXSAMMMAAAXMXMAMXMMXMXMSXMAAMSMAASXSSMMXXSAMAMAMXXXMXMXMMXMXSMAMMMSAXXMAXXAAXAXAMXMMMSMSMSMASMMMAMXS
|
||||||
|
AAXAAXXXXAAMAXAAAAAASASAAMSMMSMMSXMXAXSAMXMAXAMSMMMSSMMSAMXXSAMMMMMSMAMMMXMAMXXSAMXSXSAMXAXXASMSSXMXMMMSXAAMSSSSSMSMMMMMMAXXAAXAAAMASAASAXAA
|
||||||
|
MMMMMMSMMSMSAMSMSMSMXAMXMMXAAXAASAMMSMMASMMSMAMXAXAAXMASAXAXMAXMAXSMXSSMMXMXMASMSMAXXXXXXMMSASAMAASXSAMAMXXXAMAAXAAXASASXSSMSSSMSMMASXMSXMAS
|
||||||
|
XMAXAAAAAAXMAXMAMAXXMASXXMXMXSMMSAMAMAMSAMAXMMXSMMMSSMMSAMSSSSMSSMAAAXAASXSASXXAMMMSSMMMSAAMXMAMSMXASMSSSMMSXMMMSSSXXSAXAMXAMAAXXMMXSAMXAAMA
|
||||||
|
SSMSMSSSMXXMMMMMMMMXSXAAASXSAAAAXXMSSMMMAMMMSSMAMAXAAMAMAMAAXAAAXSMMMSSMMAMASAMXMASAMAAAMXMSASMMAMMMMAAAAXAMAXXXMAMXXMXMMMSSMSMMXASMXMSMSSSM
|
||||||
|
MAASAXAMASMMSAXAAXMASMMSXMAMXSMMMAMXAAAMXMXMAASXMASXXMASAMASXMMMXASXMAMAMSMAMXAASXMMSMMSSMXSASMSXSAAMMMMMMMXMMMXMAMXXAAMXAAXAXXXSSMMAXAAMAAA
|
||||||
|
SMMMXMAMAAAASASMSSMXMAAMAMSMXXMXMASXSMMMSXSMSMMSMMAAASAXAMAXAAAXAAAXMAXMMMMMSXMAMXXXXXAXAXXMMMAAASMSMMSSSSSMMAMASAMAMSMSMMSXMMXMMXAXXSMSMXMM
|
||||||
|
MAMXXMXMXMMMXMAXAXAAXMMSMMAMMMASXMMAAAASAAMAMXASXSMSMMASXMSSSSMSMSMSMSXMAAAMAXMSMSXMAMMXMXMAAMXMXMMXAAAAAXXASASASAMMXMAMAMMAMAAASXSMMAAAAASM
|
||||||
|
SAMXMXMXMXMASAMSSSSMSAMAMMASAMAMASMSMMMAMSMASMSMAMMMMMMMAAAAAXMAAAMXAAAXSMSXMXSXAAAMSXSAXSSSMMXXXSAMMMMMMMSXMAMASMMMAMAMMAMAMXXXAAASAMXMSMSA
|
||||||
|
SASXAASASAMXMAMXAAAAAASXXSASMMASXMAMSMSAAXMAMMAMXMASMASXMMMSMMAMSMSMMMSMMAXMXXAMMMSMAASXXMXAMXSSMMASXXAAAXMAMXMAMXASASMSSSSSMMSXMMMMXAAXMMMX
|
||||||
|
SAMMSASASASXSAMMMMMMSAMAXMAMXMASAMXMAMSMXMMXXSASAMAMXAXXXMAXXAMXMXAAMXXXMAXAMMMMAAMMMXMMMSSSMAAAASMMMSSSSMSAMAMAXXXMAXMAMAAMAXAASMMMMSAMXAMS
|
||||||
|
MXXMMAMASAMXSASXXAXXMMMSMMASXMASAMXSMMXMAAMAXXXMAMASMMSSMMMMXXXMXSMSAMXXMMMASMXXMXSAXMMSMAAAMMSSMMAAAAXAAXXASXSMSMXSMMMXMAMMXMSXMAMAAAAXMASA
|
||||||
|
MSSXMXMAMAMAMMMMMSSXSMAMASASXMASAMXMXMASMSSXSXSSSMASAMAXXAASMSMSXMAMMMASAMSAMXSXMASXMSAAMMSMXXAMMSSMSXMMMSXXMMMAAMXSAAASMMMSXMXASXMMSSMMXMAM
|
||||||
|
SAMMSAMMSSMASMXSAAXAXMAMAMASXMXSXMXMAMXMAAMAMAXAAMXMAMAMMXXXAAAAXMAMAAAXAMMXSASAMXMAMMSMSXAXXMAMAXXMAXASAMMSASMSASAXMMMXAAASAXSXMAXAAXAXASAM
|
||||||
|
MASAMXMXAXMASMAMMSMMXMSMXMXMAMAMMSSSSSXMMMMAMAMSMMSSSMMSSXAMSMSMXMXMXMMMSMMXMASXMAMXMAXXXMMSMSAMXSXMASMMASXMAXAMAMXSMSMSMMMSAMSMSMMMSSSMMSAS
|
||||||
|
XAMMMAXMMSMASMXMAXAASAASXMMMXMASXXMAMAMAXXSXSMXMXAXAMAMAMMMMAAXXSXMMSSMMXAMXMXMXSASMMSXMXSMAXSXXAXASAMASAMXMSMAMXMXSAAMXAAXMAMSAMXAXAXAAXSMM
|
||||||
|
MSSSMMSMMAMSSMAMXMSAAXMAMAAXAMMSXXMXMSASAMXXAMXMMMSASXMAMAAMMXMAMMXAAAAXSAMXMAMXMASXAMAMASMMXMASXMAXASAMXSXAAMXMAXAMXMMSMMMSMMMXMMSMSSMMXMAX
|
||||||
|
SAAAASMMASXMXMAXSMMMSXXMSSMSMSMMMMSMMXMMAMXSXMAMAAXXMMSASXSMMAMAMAMMSSMMAMXXSAMXMAMMMXAMASASMMAAMAMSAMXMSAMXXSSMAMXMMSMSASMXMXSXMAXAMXXSSMSA
|
||||||
|
XMMXMMASAMAASMMMAAAAMMSMMAMXXAAAMMSAMAXXXXMAMSASXMXAXAMMXXAASMSSSXXMAMAXAMSMSXMXMAXAMSMSXSAMXMASXSMXMASXAXXSAMXMSXSAXMASAMMASAXMXAMAMMXMAAAM
|
||||||
|
MXAMSXMMASMMMAMSSSMXXAAXXAMXXSMMSASAMAMSAXMAXSMSASMXMMSMXMMMMAAAMMSMAMMMMSXAXAMSSSSXMAASAMXSXSSMXMASAXMMMSMMASXMAASMMMAMAMSAMMSAMASXMAXSMMMS
|
||||||
|
XMMMSAXMMMMMMAMXAMXAMSSSSXSMXXMAMAXXMAMAMMMXMSAMAMMMSAAXSMMSMMMMSAMMMXAAXMMMMAMAAAAMSAMXXSAXMSAMMSAMMMSAXMASMMMXMMMMAMXSSXMMSAAXAMXMAMXXMAMS
|
||||||
|
SASASMMMMASAMAXMAMMXXMAAXAAXMMASMMSSSSSMASXSAMAMXMAAMMSXSAASMXSXMASASXSMSXAAMAMMMMAMXXMSAMASXSAMXMXSAAXXMSAMAAXMMAASMSMAMXAMMMSMMSAMASMASXSX
|
||||||
|
AXMASMAAXASMSXSSXMASXMMMMXMXAXMXAXAAMAAXMXAMAMAXASMMXAXXXMMSMAXMASMASAXAMMSMSASXSXSMSSMMAMAAXMXMXASMMMSAXMASMMMAXSMMAAXASMSMAMAAXXAXAAMXMMAM
|
||||||
|
MMMXMMMSMASXMMMXAXMXSAMXSXMASMXSMMMXMXMMXMXMASXSXMASMSSSSSMXMASXMAMXMMMSMAAAMAXMASAAAXXAAMSSMMAMMXMXAAMXMSXMASXSMMSMMMMMMAMSSSMSMSSMASASMSAA
|
||||||
|
XSAMXXAAMMMXMAMSMMMASMMAMAMAAXMMSAXASMMMXMXXXSXSAMXMAXAXAMXXXMAMMMXMAXAXMAMXMXMSMSMMMMMMSXXAASMSMMMMMSSXMMMMXMAMMAAMAMMSMSMAMAMXMAMXXMXMASXS
|
||||||
|
XSAMXASXSAAAMXMAAAMMSXMXSAMMSMMASMSMSAAMSMSSMSXMASXMMMMMMMMSSSSMMSASMMXXXSMXSAAMXSXAAAXAMXSXMMXAMAXAXAMXMAAXAMAMMSMSSMAMAMMASAMXMAMMMXXMMMXX
|
||||||
|
AMMSMMMASMSMSSSSMMXXMAMXSXSAAAMXMAAASMMMAAMSAMXSMAMAXMAAXAAMMAAAASMSASMMSAMASMMMAMMSXSMMSASMSXSSMSSMSMMASASXMSASXMAAAMMMXMXMAXAMSSMSASMSSSXS
|
||||||
|
MAAAXXMMMAXAAXXMASAMMMSAMAMXSSMMMSMXMSSSMSXMXMASMAMSMSSSSMSSMSMMMSXMMSAMXAMXXAXMASAXXMAAMXMASAMXAXAAAASXSAXMASASAMMSMMAMMMAMASMMAXXAXSAAAXAA
|
||||||
|
XMSXSXMMMAMMMSXSAMASAMXAMAMXXXMSAAXMAAMXXMMMAMSXMMXXAMAXXMAAMXAAAMAMXSXMSXMAMSMSASMMMSMMMSMSMAMMSMSSSMMXMMMMAMMMXMXMXSXXAXXSXAAMXSMSSMMMSMAM
|
||||||
|
XXMXMAAXMXMAASXMASXMMMSMMXSMMAAMXMSMMMSXXMASXSMASMAMSMSMSMSSMSXMXXAMASAMXAMAMMAMXSAMAAASMSXMAXMSAAAAMAMXMASMMSXSMSASXSASXSMMMSSMAMAMMMMXMAAX
|
||||||
|
SXMASMMSSXSMAMAMASAMAAAXMAXAMMMMSMXXSSMAMSMMMXMAMMXMAAAAXAAAXMMAXSAMMSMMSXMAMMASASAMMXXMAXMXMMMAMMMSMMMASMSAASMMAMAXAMAMSAAXXAMMASXSAMMASXMS
|
||||||
|
MASXSXAAAASMXMAMASASMSSSXSMXMAAAAMSMMAMXMAAAASMXSMMMMSMSMSXXAXMAMXXMAMAAXXSXMSAMASAMSSMMSMMMSMXMXXXXAXSASXMMMSAMSMSMMMSMXSSMMXXSASXSAXSASAXM
|
||||||
|
SAMMMMMMSMSAMSAMXSAMAAAAMXASXSMSMMASMSMMSSSXSXXXMMASXXAXAXXMMSMMSXMXSMMMSXAAXMAMAMAMAAAMAAAXAXAXXMXSSMMXSAMSXMXMXAXAXAXAAAMAXMXMASAMXMMASMMX
|
||||||
|
MAMAXMAXXXMAMMXSAMXMMMMMMMAMAAAXASASMAAMAXMMMXMASASAMMSMSMSAMXXAAASMXASMMMMAMMXMMSSMSSMSSSMSSSSXSAMXXASASAMAXSAMSSSMMMSMMSSXMASMXMMMMXMAMASX
|
||||||
|
SSSSSSMSXXMSMSAMMMMXMAXSAMXMMMMSMMASMSMMXASASASASMXMAXAAAASMMMMMMSMASAMAAASAMSAMXAXXMAAAAAAAAAXAXSSXSSMASMMXAMAMAAAAAMMMMXMMASXMAMMAMXMASAMM
|
||||||
|
AXXAAMMMXXXAAXXSXASASXSSXSXMSAXAXMXMAMAMSXXASAMASAMXSXMSMMMXMXASMMMXMMMMSMMAMSASMXSASMMMSMMMMMMMMMMXSMMXMMMXMXAMMXMSMMAAXAASXMASAMMASASMMASX
|
||||||
|
MSMMMMAXMAMMMMMXMXSASXAMAMAXSASXSMSMASAMXSMMMMMAMXMAMAXXXXAAASMSAMXMAMSAXASMMSXMMSMASAMAXAXXAXAAXMAXMASXSAMXMXSSXAXMXMSSSSMSASASXXSAXASAMXMA
|
||||||
|
XAAAXXMMSAXAAAMAMMMMMAAAAMAMMAMXAAAMXSXMAAXAMXMAXAMXSSMSSMMMMMAMAMXSAMMAMAMMASXMXSXAMAMXSAMSMSXSSMMXSAMXSASMXAXMXMMAMXAMAAASAMXSAMMXMAMAMSMS
|
||||||
|
SSSMSAAMSASMSSSXSAAXSMMXMXMMMAMXMSMXXMASXMXMSXXMSMSMAAMMAXXXXMASXMASXSMSMSMMAMASASMSSSMMMMXSASXMMAMXMAXMSAMAMSMSXSMXMAXMSMMMAMXMAMAMSMMAMAAA
|
||||||
|
AAAASMSXMAMMAMMAMXSMMMSXSAASXMSAMAAMSSMMAMXSMXSMAAAMAMMSAMSMXMASAMXXXMMXAAXMASXMAXAMAMMXAMMSXMAXXAMSMMSAMAMSMAASAXXAMAMXAMASMMXXXMAMAASXSMSM
|
||||||
|
MSMMMAMMMMMMSMSSMAMMMAMASXSMAMSASXSMMAASAMMSAASXMMSSMXXMASXAAXAXMMXMMSAMSMXSXSAMSMSMMMMSAMAMAMXMSMSXAAMAMXMXMMSMAMSMMAXMASAXAAMSSSMSMXAMXAMX
|
||||||
|
XXXMMASAAAXXMAAXMXMAMASMMMXXMMSAMXXASXMSASAMMMSAMXXAMXXSMMXXMSSMASAMAMAXAMAXAXMAXAAXAAMMASXSSMXMAMMMMMSAMXAXXSAMXMAXXAXMAMMSMSMAAAMMXAMAMMMM
|
||||||
|
XMAXSAXMSSXSMMMMXSSSSMAXMXXAXAMMMMSAMMMSMMMMAXMXMMSAMSXMAMXXXAMSAMAMASMMMMSMMMXXMSMSSSXSAMXAMXMMSMXAMXMMMSMXMXXSASASMASAXAXXAAMMSMMSSMSSMMAS
|
||||||
|
MSAMMMSAMAASXSAAAMAAXAMMMAMSMASXSAMXMAAXAAXMASMSMMMMMXMMAXXSMAXMXMAMMSXAXAMAMXSMAXAXAAXMXMMXMAMAAMSSMMSAAAMMAMXXXMASMAMMMMXMXMMMMAAAMXAMXSMS
|
||||||
|
AXXSAAMAMMMMASASXMAMMMXSMAMAAXAAMMXASMSXSMSAMXAAAAAAXXAXMSXAMXMAMSSSXMXSMMSSXAMMAMMMMMMSMSXASAMXXMAXAASMSSSXSXMXMXXXMASXAXAMMSXMSMMSSSMMASMM
|
||||||
|
SXSMMSSMMSAMXMXMMSAXMXASXSSMSSMXMMSMSAMXMAMASMSMMMSSSMSAAMMMMMXSXAMMXSAMAAMXMAXMAMXAAAAAASMMMASAMMMXMMSMMAMMMASAMSXMASMMSSMSASAMSXMAAAXMAXAM
|
||||||
|
MMSAAAAAASXSAMAMXSASAMXSXMAXAMXAMMAXMAMMSMSMMMMXMMAMXAXMMMAXXAAXMMMXAMXSMMXAAMXSSSXSSSMMSMASXXMXMASASXXXMAMASAXAXXSASAAAXAAMXSAMXXMMXMMMMSSM
|
||||||
|
SASMMMSMMMASASMMAXMAXAXSMSMMMSSMMXXMMMMXAAAAXXSAMSAMXSXMASXSMMXSAMAMMSMSMSXSMSAAXAAMAMASAXAMXXXXSMSASAMXSSMXMMSMSMSSMMMMSMMMMSAMXMMSSMAMMAMS
|
||||||
|
MXMASAXAMSXSXMAMSSSMSAMXAAXAMAAASMXSASXSMSMMSAMAMAAXXMAAMXAXMXASMMMAXAAXAAAXAMMSMMMMASXMAMSMXSXASAMAMMMMMAMXAXAAAASAMXAXXXAXXXAMXMAXASMSMMSS
|
||||||
|
AXMSMMMAMAAMASMMMAAXSASMSMSMSSMMMAAMAMAXXAAXMXMAMXMMSMSMMMSMXMXXAAMXXMSMMMSMAMMXASXMXMAMXMAMASXMMAMXMAAAMAMMSMMSMSMAMSXSSMMSSMASAMXSMMMXMSAM
|
||||||
|
XMSAMXXMMMSMASXMMMMAXAXAXAXAAXAAMMMMSMMMSSSMAXMASASASAMAXAXAMXMSSMSMSMMMMSXMAMXXAMSMASXMASXMAMAXSAMASXSSSXSAAAAMMXMXMSAMAASAXSAMXMASXAXAXMAX
|
||||||
|
MSXMAMMAAXAMASAMXXXMMSMAMAMSMSSMSAXXXAXAXAMMSMSXSASAMAMSMMSSXMAMAAAMAAAXSAXXMSXMMMXXASASXSAMSSMMXAMAXXAMXAMMMMMSASAMXMAMSXMAMMXSASMMSSSSXSSM
|
||||||
|
MAAXAASMMMMAXSAMMSSXAXMMMXMXXMAASASASMMMSXXAXXSAMAMMMMMXAXAMAXSSMMMXSSMSAMMMSAXMXAMSMSMSASAMAAAMSSMSMAXSMMMSXMXMMMMSASXMXAMMMMMAAXAAXMAAXAMX
|
||||||
|
SSSMMXXAASXSMSMMAAMMSSMXAMSXASMMMMMMSAMXAXMMSAMMMMMXAXMXMMMSXMMMAAXXMAMXAMXXAAMMSMXAXSAMXMAMMXMMAXXAMMXMASAMXSASAMXSASXAMSMSAXAMSSMMMMXMASMS
|
||||||
|
MAMXSMSXMAAMAMXMMMSAAAAXMXMSMMSAMXAMXMMMXMXAMAMXMASAMXSXXAXSMSASXMXSMAMSAMXXMSMXAMSMSMMMMSMSXAXMMMSASXMSAMASMSASXSAMXMASMAASMSSMAAAMSXSXMAXX
|
||||||
|
MXMASXMASMMMMXAMXAMMSMMMSAMXXAXMASXSMAXSAMXMSSMMSAXAMAAAASXSASASMSAXXAMMAMXAXMMXXXAXXXAAXAAXMSMASAMXXMMMXSAAAMAMAMASMXAAXMMMAAMMSSMXMASXMMSM
|
||||||
|
SMMASAMAMXASMSMXMASMMASASMSAMMSSXMAAXAMSMXAXAXAMMXSXSXMAMMAMMMAMAMAMMSMMAMXMAMMXMXSSSSSMSMSMAXSMMAMMXMAMXMASMMXMASAMXMASMSSMMMMXAMASMAMAMSAM
|
||||||
|
AXMASAMSXXXXAAMSSMSMSXMASXMXAMAXASMSXMAXMXMSMSMMSAMXMAXXXMAMAMSMMMMSAAMSAMAMASMMSAAXAAXAXAXMAMXXSAMAAMAXXMAMXSXMAMXSXAMMMAAMSSMMMSASMASAMSAS
|
||||||
|
MSMMSAMMXSMMMMMAAAMAMXMAMXMASMASMMAMASXMSAMAMAAMMXXAMMMSMXXXAMAAXAAMXMAMASXSASXAMMSMMMMAXMXMAXMASXSSMMSSXMASAMSXXMASASXAMMMXAAXAXMAMXXSXMXXM
|
||||||
|
XXAXSMMSAMAAAAASMMMXMAMAMAMAMMAMAXXMAMAASMSASMSMSMSSSSMMAASMMSSSMMXMXXMSMSAMASMSMXMXSMMAAMMSASMAMAMASAMXAXAMAMASXMMSMMSXSAMMSSMSMMAMSXMMMMXX
|
||||||
|
ASXMMMAMXSAMSXMXXMAMSSSMSMSASMSSSMSMXMMMMXMXMMXMMXAXMAMMMMXAMAMXAXMASMXAAMMMMMMASXMASXMSSMASASAMMSMAXSSSXMASXMAXMSXSAMXXSAMMAMAMAMXMSAXAASMM
|
||||||
|
XSSSXASMMSXXMXMAMAAXAAAAAAMXMXMAXAAXAASAMXSXSXSAXMAXSAMAASXMMSSSMMMAMASMXMAXSASASXMASAMAAMAMMMAASXMMAMXAASXMAMXSAXMSAMXXSAMMASASXMSMSAMSMSAM
|
||||||
|
XMASXXXAMXMMSASASMSSXXSMMMMSSXMMMMMMXMSAXSAMSMSXMSAAXASXXMAMAAAAMAMAMMAMXSAMSAMASMMMSAMSMMAXXMXMXXAMAMMSMMASXMAMXAAMAMMMMXMXAMXXAMAMXAAXXMMM
|
||||||
|
XMAMMSXXMAAXSAMASAAAMMMASMAXMAMXXXSXSXSAMXAMSAMXMMMMSAMXMSMMMSMSSMSASXASAMXXMAMXMAAAMAMXAMSSSMAMMSXSASXMASXMAMXSMXXSAMAXSXSMXMMSSSXSSMMMMSAM
|
||||||
|
SMMSASAMMXMXMXMAMMMSAMSAMMMMXAMMSMMASAMMMSXMMSMMXXAMMMMXXAMMXMAMXAMAAMAMASXXSXMXSSMMSAMMXMXAMMAMAXXXMAAXAMXXXSAXMAXXAXSMSASASAMAMXXXXMXAAMAX
|
||||||
|
SAMMASMSSSMSMSMASXMMMMMAMAXSSMMAAAMAMXMSAMMSMMMXAMMXAAAXSASMAMAMMMMSMMXSXMXAMXMAMAAXSXMSSMMAMSASXMXXXMSMSMXSAMXSMMSMSMXAMAMASMMASXMMMSMMSSSM
|
||||||
|
SAMMAMXAAAAAAMMAMAAMAMXSSMXMAMXSSSMASXXMASAAAAAMSMAAMMXXSMMMXSAMXXAXXMASASMMMAXXSMMMMXXAAAXXMSASAMXMXXAAXAXMMMAMAMXAXAMMMMMXMXSAMAAAAAAXXAXA
|
||||||
|
MAMMASMMSMSMMMMASMMSMMAXAMMSSMMXAXXMMMMSMMMSMMMSAXMXMAXAXAXSASASMMMSMSASXMASMSSMMXMASMMSSMMSXSASAMASMMMMMXMSAMXSAMMMMAXXAMXSMXMAXSSMSSSMMAMS
|
||||||
|
SSMSASAXXXXAMXSMSMAAAMMMAMMAAAMSXMAMAAAAAMAMMSXAMXSMSMSMSMMMASXMAAXAAMMSMSXMAAAAAAMXMAMXMAAXAXASXMAXMASXMMXSASASASMMSXSSSXXAXMXMMMMAXAAXMMMM
|
||||||
|
MMAAAMXMMMSAMMMAMMSSSMASMSMXSAMSXSXSSMSSXMASASAMXAAMAAAAAXAMXMASMMSMSMAMAMAMMMMSSXSASMMASMMSMMMMAMAXSAMAXMASMMASASAASAMXAMSMSMMMAAMMMMMMMSSM
|
||||||
|
SMXMXSAMXASAMMMAMAAMAMXSAAAAMXXXMXMAXAMAXSSMXSAXMASXMSMSMSXSAMMMAXXAAMMSXSAMAAXXAAMAXSAXMAAAMAASAMXMMASMAMASXMAMASMMMAMMMMAAXAMSMSAXAXSAAAAA
|
||||||
|
SAMXMAXAMMSAMXSXSAMXXAXMMMMMSXMASXMASXMXMMAXXMAAMSXMAXAMXMASMSMSXMMSMSXXXSXSSSSMMMMMMXMASMSSSSMSXSXMAXSAMXXMASAMXMXSAMXMSSXMSAMXXMXSMSXMMSSM
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
namespace AOC.Tests.Y2024;
|
||||||
|
|
||||||
|
[TestFixture]
|
||||||
|
[Parallelizable(ParallelScope.All)]
|
||||||
|
public class Day04
|
||||||
|
{
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
realData = File.ReadAllLines(Path.Combine(TestContext.CurrentContext.TestDirectory, "Y2024", "Data",
|
||||||
|
$"{GetThisClassName()}.dat"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected string GetThisClassName() { return GetType().Name; }
|
||||||
|
private string[] realData;
|
||||||
|
|
||||||
|
private bool FindWord(string word, string[] lines, int charNum, int lineNum)
|
||||||
|
{
|
||||||
|
// This word search allows words to be horizontal, vertical, diagonal, written backwards, or even overlapping other words.
|
||||||
|
|
||||||
|
// Start at the current character (if it matches the first letter in the word) and search in all directions for the next letter in the word.
|
||||||
|
if (lines[lineNum][charNum] == word[0])
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Checking char {charNum}");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine("Checking right");
|
||||||
|
// Check right
|
||||||
|
if (lines[lineNum].Substring(charNum, word.Length) == word)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Found to right at line: {lineNum} char: {charNum}");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// Ignore, probably outside the 3d array
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine("Checking left");
|
||||||
|
// Check left
|
||||||
|
if (lines[lineNum].Substring(charNum - (word.Length - 1), word.Length) == new string(word.Reverse().ToArray()))
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Found to left at line: {lineNum} char: {charNum}");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// Ignore, probably outside the 3d array
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine("Checking up");
|
||||||
|
// Check up
|
||||||
|
bool notFoundUpwards = false;
|
||||||
|
for (int i = 1; i < (word.Length - 1); i++)
|
||||||
|
{
|
||||||
|
if ((lineNum - 1) >= 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine(lines[lineNum - i][charNum]);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error with accessing the char on the line - {ex.Message}");
|
||||||
|
notFoundUpwards = true;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine(word[i]);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error with accessing the char number {i} in the word - {ex.Message}");
|
||||||
|
notFoundUpwards = true;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lines[lineNum - i][charNum] != word[i])
|
||||||
|
{
|
||||||
|
notFoundUpwards = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
notFoundUpwards = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!notFoundUpwards)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Found upwards at line: {lineNum} char: {charNum}");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// Ignore, probably outside the 3d array
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine("Checking down");
|
||||||
|
// Check down
|
||||||
|
bool notFoundDownwards = false;
|
||||||
|
for (int i = 1; i < (word.Length - 1); i++)
|
||||||
|
{
|
||||||
|
if ((lineNum + i) <= lines.Length)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine(lines[lineNum + i][charNum]);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error with accessing the char on the line - {ex.Message}");
|
||||||
|
notFoundDownwards = true;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine(word[i]);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error with accessing the char number {i} in the word - {ex.Message}");
|
||||||
|
notFoundDownwards = true;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lines[lineNum + i][charNum] != word[i])
|
||||||
|
{
|
||||||
|
notFoundDownwards = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
notFoundDownwards = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!notFoundDownwards)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Found downwards at line: {lineNum} char: {charNum}");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine(ex);
|
||||||
|
// Ignore, probably outside the 3d array
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine("Checking diagonals");
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO - diagonals!!
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCase(@"..X...X
|
||||||
|
.SAMX.M
|
||||||
|
.A..A.A
|
||||||
|
XMAS.SS
|
||||||
|
.X.....", 4)]
|
||||||
|
[TestCase(@"MMMSXXMASM
|
||||||
|
MSAMXMSMSA
|
||||||
|
AMXSXMAAMM
|
||||||
|
MSAMASMSMX
|
||||||
|
XMASAMXAMM
|
||||||
|
XXAMMXXAMA
|
||||||
|
SMSMSASXSS
|
||||||
|
SAXAMASAAA
|
||||||
|
MAMMMXMMMM
|
||||||
|
MXMXAXMASX", 18)]
|
||||||
|
[TestCase(null, 232)] // The actual answer
|
||||||
|
public void Part1(string? input, int? expected)
|
||||||
|
{
|
||||||
|
// string[] lines = input != null ? new[] { input } : realData;
|
||||||
|
string[] lines = input != null ? input.Split("\n") : realData;
|
||||||
|
|
||||||
|
var result = 0;
|
||||||
|
|
||||||
|
foreach (var (line, index) in lines.WithIndex())
|
||||||
|
{
|
||||||
|
Console.WriteLine($"=====\nChecking line {index}\n=====");
|
||||||
|
for (int i = 0; i < line.Length; i++)
|
||||||
|
{
|
||||||
|
if (FindWord("XMAS", lines, i, index))
|
||||||
|
{
|
||||||
|
result += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (expected != null)
|
||||||
|
{
|
||||||
|
Assert.That(result, Is.EqualTo(expected.Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine($"Part 1: {result}");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCase("blah", 1)]
|
||||||
|
[TestCase(null, 1783)] // The actual answer
|
||||||
|
public void Part2(string? input, int? expected)
|
||||||
|
{
|
||||||
|
//string[] lines = input != null ? new[] { input } : realData;
|
||||||
|
// string[] lines = input != null ? input.Split("\n") : realData;
|
||||||
|
|
||||||
|
//if (expected != null)
|
||||||
|
//{
|
||||||
|
// Assert.That(result, Is.EqualTo(expected.Value));
|
||||||
|
//}
|
||||||
|
|
||||||
|
//Console.WriteLine($"Part 2: {result}");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
--- Day 4: Ceres Search ---
|
||||||
|
"Looks like the Chief's not here. Next!" One of The Historians pulls out a device and pushes the only button on it. After a brief flash, you recognize the interior of the Ceres monitoring station!
|
||||||
|
|
||||||
|
As the search for the Chief continues, a small Elf who lives on the station tugs on your shirt; she'd like to know if you could help her with her word search (your puzzle input). She only has to find one word: XMAS.
|
||||||
|
|
||||||
|
This word search allows words to be horizontal, vertical, diagonal, written backwards, or even overlapping other words. It's a little unusual, though, as you don't merely need to find one instance of XMAS - you need to find all of them. Here are a few ways XMAS might appear, where irrelevant characters have been replaced with .:
|
||||||
|
|
||||||
|
|
||||||
|
..X...
|
||||||
|
.SAMX.
|
||||||
|
.A..A.
|
||||||
|
XMAS.S
|
||||||
|
.X....
|
||||||
|
The actual word search will be full of letters instead. For example:
|
||||||
|
|
||||||
|
MMMSXXMASM
|
||||||
|
MSAMXMSMSA
|
||||||
|
AMXSXMAAMM
|
||||||
|
MSAMASMSMX
|
||||||
|
XMASAMXAMM
|
||||||
|
XXAMMXXAMA
|
||||||
|
SMSMSASXSS
|
||||||
|
SAXAMASAAA
|
||||||
|
MAMMMXMMMM
|
||||||
|
MXMXAXMASX
|
||||||
|
In this word search, XMAS occurs a total of 18 times; here's the same word search again, but where letters not involved in any XMAS have been replaced with .:
|
||||||
|
|
||||||
|
....XXMAS.
|
||||||
|
.SAMXMS...
|
||||||
|
...S..A...
|
||||||
|
..A.A.MS.X
|
||||||
|
XMASAMX.MM
|
||||||
|
X.....XA.A
|
||||||
|
S.S.S.S.SS
|
||||||
|
.A.A.A.A.A
|
||||||
|
..M.M.M.MM
|
||||||
|
.X.X.XMASX
|
||||||
|
Take a look at the little Elf's word search. How many times does XMAS appear?
|
||||||
Reference in New Issue
Block a user