mirror of
https://github.com/jcreek/advent-of-code.git
synced 2026-07-12 18:53:47 +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