From 486afb7a1b057ca4c3faf7e4bab1d4a39ceaf016 Mon Sep 17 00:00:00 2001 From: Clement Date: Wed, 4 Dec 2024 20:46:24 +0800 Subject: [PATCH] Day 4 --- 2024/day-4/input.txt | 140 +++++++++++++++++++++++++++++++++++++++ 2024/day-4/solution-1.sh | 109 ++++++++++++++++++++++++++++++ 2024/day-4/solution-2.sh | 10 +++ 3 files changed, 259 insertions(+) create mode 100755 2024/day-4/input.txt create mode 100644 2024/day-4/solution-1.sh create mode 100644 2024/day-4/solution-2.sh diff --git a/2024/day-4/input.txt b/2024/day-4/input.txt new file mode 100755 index 0000000..920e990 --- /dev/null +++ b/2024/day-4/input.txt @@ -0,0 +1,140 @@ +AAMXMASASMXSAMXXSAMSAMXXSXMMSMMSXSASXSXSSSXSAMXXXSXMASXMAMMASAMXAXAXMXMSSMMSXSASXSAMXXMASMXSMMMMMXXMAXXSXXXAXMSAMXSMXMSXSAMXMXMSXMMXSMXMXSMS +AXMASXMAASAMMMSMSAMSAMXMAXMAAAMXMASAAMMMAAAMMXMASMAMAMASMSAASXMAXMMXASAMXAAAMSAMMMAMMMXMASASAXXASMMMMSAMMMXMASXMASMSMMMAMMMMMAXXAMXAXMAMSAAA +XMSMMAMXMMSMAAAAMAMSAMXAMAMSSSMXAMMMSMAMMMMMSASXAXAMASXMAAMXXMSMXSAMXSMMSMMSMMAMASAMMAAXSMMSAMSMMAAAMMAMAASMMMXMMXMASAMAMSMSSSSSSMMXSXMXAMXM +SAMXSAMSXMASMSSMSMMMMMMAMMMMAMASMXSAAMSMMAMXSASMSSXSASMMSMMMSMAAAXAAAXAAMAMXASMMMSASXSMSMMXMXMAXMSMSSSSMSMXAASMMAASAMXSASAAXAAMXAASMMASAMXAX +ASAASXMMAXAXMAXXAXAXASAMXAAXMMMMMAMXSXMASXSMMMMAAMXMASAAMXSAAMMAMSSMSMMMSSMSMMXMXSXMAXXAAXMMSSMSXMAMAAAAXMSSMXASXXMMSMSMSMSMMMMSSMMASAMAXSSS +MMMMSAXSAMMXSASMMSMSAXMASMSMXAXAMXMXXASAMXAMXXXMAXAMXSMMMXMXSMXAXMAAXXSAAXMAMXXMMSAMXMSSXMAAMAAAMMAMMMMMMMAMAMXMXAXXAASAMXAAXXXXMAMMMMSXMAAX +XMAMXMXMASXAMMSAXAAMAMSASMXXSXSXSAMXMAMSMSAMXSMSASXSAMXSMASAXASMMSMMMAMMSSSMSMSMASXMAMMAMSMMSMMMMSASXXAAAMAXXMXASMMMMSMAMSMSMMMXMMMSXMSMSMAM +SSMSAXSMASMMMASMMMMMXMMASAMASAAMSASAMXMAMMAXXAAAAMASXSASMXMASAXXAAAAMAMAAAMXAASMAMASMSMAMXAAMXSXASASASXSSSSMSXMASXAAXAXSMSMAAAMMASASAAXAXXAX +AAAMXMXMAXAXMXXXXXXXXXMMMXMAMXMXMASXMXSASMSMXMSMSMXMAMASAMMMMXMMSSSMSXSXMMSXMSSXMSMMMAMMSMMMSAMMMMAMAMAAAAXAXMXAXMSMSAMXAMMSSMAAXMASXMMSMSAS +MMMMSSXMASMXMASMMMXSXMMMAXMSMSXAMMMXMASASMMMAAAMXMXMXMXMMMXAMASXMAMAXMMMXMAASAXXXAXASASMSXSAMMSAXMAMAMMMMAMMMAMMMXAXMMMMAMAAAMXSXMXMAMAXXSSM +XMAAMAAMAMMAXAAAAXAMMAAMAMMMAXMXSAAAMAMMMAAXXMMMAMAXMASMMSMASAMMMMMMMAAAMMSSMASMSMSXSAMAMSMASXSMSSSSSMSAMXMXASAMXMSMMSASASMMXXMMMXAXAMMSMMAS +MSMSSSSMMSXMMMSSXMMSASXSSMSMMMMMMMSMMASASMMSSMXSASXXSASAAXSXMMXMAAMXSSSXSAXXMAMXAAAXMAMMMASMMMXAXAMAAASXSMXASXXAAAAAXSXSASAMSAAAAMMSXXXAAXAM +XAAAAAXXAAMSXMAMXXMAMMAAAAAAAAAAXAXAXXXXMAAAAAASAMAAMASMMXAMXSASMMSAAAAAMXMXMXSSMSMXMAMAMAMMAMMMMAMXMMMMMAMXXMSSMSSSMSMMAMAAASXMSXMAASMSSMXS +SMSMMMMSMXMXAMASMMSSMMMMMMMXMSSSMSSMMSSSSMMMMMMSAMMMMAMAXSAMXSASAAMMMMMMMMMXMAAAAAXSSMXSMSSSMMAAMAMXXAAAMXXAMXAAMMAAXXAMXMMMMMXMAASMMMAAXXXX +SAMXMAMSMSMXAMAMAAXASAAXXXSAAAAAAAXMAXAAMXXXXAXMASXAMASXMMASXMAMMMMSASXMAAXAMXXMSMSAAXAMXMAAASXMSMSASMSMSAMSSMSSMMSMMSSMAXXAXXAMSXMAAMMMMMSM +SAMXSASXASAASMSMMMMMSXXSAASMMMSMMMSMSMMMMXMMSMSXAXXXSAMXASAMAXSXXXASMSASXSSSXSXXAXMMMMMSAMMMMSAAXAAXAAMAMMSAAAAXAXAXAXMMSMSAXSMMMMSSMSXSXAAA +MAMXSSSMXMAMMAAXSXMXXXXMXMMASAXXSXAAXMMMXMXXAMXMMSSMMMMSXMASMMMMMMAMASXMXAAAASXXXXXAMAMMAMXSASMMMXMSMMMAMSMXSMMSSMMMSSSXMASXMXMAAMAAAXAXMASM +SSMMMAXAMXMMMMMMMAXAXSSMMXSAMXMMSSMMMAAXAXXSSSSXSAMXSAAMMXAMMXMAMMSMAMXSSMMMMMAXSMSSSSXSASXMASAMSAMXAASMSSXMMAXXMAAAMAMAMXMMMASXSSSMXMXMAMXM +MASXMMMXAAMAXMASMMMXSAAAAXMAMXMAMAXXSXMXMXMXMAMSMASAMMSMAMSMSAMMSAAMAMAXAAXXXMSMAAAAAAASAMXMXMAMSXSSXMASAXAAXMXSSSMSMASXMAXAMXSAMAMXSMMSXMAX +SAMXMXMXSXSAMAAAAAAXAMMMMXAXMAMSSSSMXAMASAMAMAMAXSMXSAXMAXMASXSAMXSMMMSSMSXSMMASMXMMMMMMAMMSASAMXAAMMSMMMSMMXMAMAXMXXMMMXMMSMMMAMXMASXAAAMXM +MASASASMMASMSMMXSMMXMXMMMMMMMXSXAAXMAXSASASASXSMMMAXMAMSSSMAMAMMSAMAXAXXXXAAASASXSXAAXXMAAMSXSASMSMMMMMAMMAMXMASMSMSMSMSASMXAASAMAXMXSXSAMXA +MXSASAMAXAXXAXMXMAMXMAXSAAXAXMMMMMMMXXMASXAASAAXAMXMXAXXAXMAMAMXMAMSMMXSAMMMMMMSASXSXSXMASXMASXMXAMXAAMAXSAMXSASXAAAAAXXAMASMMMASMSXAMMAMSSS +XXMMMMSSMMSSMXXAXMAXXAXXXMXMSAMMMXMSXAMAXXMSMMMMXXMASMXXMASMSXSASXAMAMAMASMSMAXMXMXMXMAXAMAMAMXMASXSSSMSXSXSXSXSXMSMSMMMAMAMAASMAMMMASAMXAAM +XMASAMXMAXAAAAMSMSMSMSXSASAXSAMAXSAMSXMASMXAASXMXSXXAXSXXXMASASASAMSAMXSAMXASMSMXMASXMXSASXMMXMXAMXMAAAMASMSXXAMMXAXXAXSMMMSXMMSXAMMMSXSMMXM +XSAMXSASMMMSMMMXAAAXAAAXASMXXSMAMMAMXXXXXAMMXMASAMXSXMASXXXXSXMXMAXSAMAMASXMMMAMAMAAAAASAMXXSASXSSSMMMMMASAMMMMMMXAMXMMXAAASASMMSXASASASASAS +MMASXMASXAXAXXAMSMSMSMAMXMXXMXMMSSSMSSSMXMAXASMMXXMXAMMMMMSASXSASAMXAMSXMMAAASASXMASMMMMAXAXXASXAAXXXMXMAMMMAXMAMMSMXMAMMMXXAMAAASMMASASAMAA +AXAMAMAMMSXMSMSMAXXAXXMAXMMMXXAMAMAMAAAXSXXSAMAMSMSAMMXSAAMMMAXASAXXSAXAXSSMMSMSASXXMASXSMMSMSMMMMMMAXAMAXMXSXMAMMXAAMMMSMSMASXMMAXMMMAMMMSM +SMSSMMASXMAXXAAXMSMXMAMSMXAASMSMASMMMSMMXAAXASMMAAAAMSXMMMXAMAMXMXSAMASAMXXAAXASAMXMSASMXAAAXAAXMAAXXSXSASMMMASMSSMMMSXAAAMSAMASXMASMMSMSAMX +XMAAASXSASAMMSMXSAXAXXMAXSMSMAASAMAAAAXMMSMSAMASMXMSMXAMASXMMASAAXMXMMMMMMSMMSXMMMAAMASXSSSMSSSMMMSMXXAXAAAASAMXAAXSAMXXMMMMXSAMXXAMAMMAMASA +MMMSMMXMMMMMXXAXSAMMMSSMXXXXMSMMSSSMSSSMAAXMASMMXMSAMSXMAXAXSAXMSMMXSAAAMMAAAXAAXSSSMAMXAMXMAXAASAXAXMSMSSSMXAMMMMMMASMSXSASMMASMMMXAMMAMMMM +SAAXAMAMXAMXXMSMMAMXMAASAMXSAMXSAXMAXXMMSSMSAMXMAXMAMSAMSSMMMMMMAAXASMSMSMSSMSSMMXXAMASXMXAXMMSMMASAMAAAMMXMSMMAXXXSAMXAXSAMAXMMXAASXSSSSSXS +MMXSAMAXSASAMXXASAMXMSSMMAAMAMXMASMMMAMXAAAMMSSXMSSMMSAMAAXAASASMSMMSAXXAMMAMMAASXSXMXMASAMXMAMAMMMXASMMMXSMASMMSAMMMXMMMMMMSXMMMMMSXAAAAAAX +XXASAMAMXXMASASMSASXMXMASMSXMASXMAXASAMMMSMSXXMAMMAAAMAMSSMMMSAXAAAXMAMMMXXAMSXMMAMSMASMMMXSMASAMXAXMXXSAMASASMAXXMASAMXAAXAMMMMASXMMXMMMMSS +SMMSXMMMSMSXMASAXMMXMASMMAAXXAXAXMAMMASMAMMMXASXMSSMMSAMXAASMMMMSSMMMAMSXSSMMSMMMXMAMAMAMXXMXXMAMMSXMAXMAMAMXSXAXXSAMASXSSMMSMAAMMAAXMXAXXAX +SAXXMAMAAASMMAMMSXMASASAMMMMMSSSXMMSSXSMMSAAMXAMXAMAMSMSSXMXAAXXAAASXSXSAMXMAMAXAXSAMSSSMSMAMMSSMXXAMXMXMMXXAMXMAMMMSXMMXAMAAXXSXSSMMASXSMMM +SXMASAMSSMMSMXSMAASASMSAMMXSXMAMAAAXMXSAMSMMSAMAMMSSMXAAXMASMMMMXSMMXMAMXMAMAMXMXAMXSMAXAXAAMMAMXASXMAAASMXSASAMMAAXAAMXSAMSMSXMMMASAMXAAMXS +MAMXMAMAAAASXXMMSMMAMAMAMXMMAMAMXMMXXAMAMXSAMXMXSAAASMMMXSAMXAASMMMXSMMMAMMXSSMMXMASAMAMSMXSSMXSMMSASMSMSAASASXSXSMMXAAAMAMXXSASASAMSSMMMMAX +SAMXSSMSSMMSMXXAMMMMSMSSMMAXXMSSXSMXMASAMXMSMSAMMMSSXXMAMMASMXXXAMXAMAASXMSAAAAXASMSAMXSAAAXAMAXMXXAMXAXMMMMXMMAMAAXSMMXSMMXAMAMAMASXSAAAMXS +SASAAAAAAMXSASMMSAAAAXXMASMXMXXMASAASXMASXMAMAAAXXMAMXMASXXMASMSMMMSMSMSMAMMXMMSMSAXXMXMMMMMAMXSMSMSMSXMXXXMASAMXSAMXAMMSAMMSMSMMMXMAMSMSSMS +SAMXSMMSSMAMXSAASMMSMXXMMMSAMSAMMMSMSASXMMSASMMMMMMMSXSMSAMXAAAAASAXAMMXMAMMXSAMXMAMXSAMXAMSXMAAAXAAXAMXMXAMMASXAMAMXXMAXAMAMXMAMMMMXMAXXXAM +MXMXXXMXMMXSAMMMSAMAMSMMSASXMASMAMAXSAMAAAMXSXAAXAMXMASXSXMAMMMSXMAMXMAXXXSAMXASMSXMXAMMSAXXMMSSSMSMSMXSAMXMXMMMXSAMXSSSSSMXXAXMMAASMXXSMMSM +SMMMXMMAAMMMMXXXXAMAXSAXMASXMAMSXSXXMMMMMMXSXMSMSXXAMXMASASXXMAXAMAMMMMSMAMXMSMMAMMMXMMAMSAAXAAMAMXAXAMXSMAMAXXAAXMMXMAMXAASMSSMSXXSAMXAAMAM +AAAAAXSSMSAAMASXMSMSSMSMMSMXMAMMMXMMAMSXAXMXAMXAAMXMMAMMMAMXASAMXXMSAAAAMAMMMSSMAMAXASMXXMSMMSXSAMMMMSMAMXSSSMMMSMMSXMAMMMMMXAAMMXASMASXMSAS +SSMXMXAXAXXMSAMAAMAMAMXMXXAMMMMSMMASXMASMSSMAMMMMSAMSSSXMAMXMMXMMMMMXMSXMASXAMAXXMMMAXAMXMAMXMASXSASAMMXMAXAMAMAAAAAXSASXXMSMSMMMMXSXMAAASAM +MAAASMMMSMSXMASMMMXMAMXMAMXMASAAAAXAMXMMXAASXMSMAXMAAMAASMSASMSAXSAXAMXMXMSMMSAMMASMSMAMSSSMXMAMXSAMASASMSMAMXXSXXMXMMAMXMAXAAAAXMASMSMMXMMS +MMMMXAMAMXMASAMXMASMXMXMASMMAMSXMXSXSAXMMSXMXAAMASXMMSSMMASASAAMMSASXMMSAAXXXMASXAXAAMAMXAAMAMASMMXMSMAMAXMAMXXMMSSMMSSMMMASMSSMSSXMASXMXXXA +SASMSSMASAXMMSAMXMSXSAMSASAMAXAMSMSASAMXAMAMMMMMXAXMAAXAMXMAMAMXAMMMXAASMSMMMSAMMMMMMSAMMMMMAMAMAMXMAMXMAMSSSMSAAAAXAAAAXMASAAXAXXAMSMAMSMXM +SASXAASMMMXXAXMAAXMAMMAMAMXMSMSMSAMXMAMMXSAMSSMSAMXMMMSXMMAXXAXMSXSAMMMMAXXAAMMXMAXAASXXAMAXMMSXSXAXASMMXMMASASAMSSMMXSMMXAMAMMMMXMMXSMXAAAX +MXMMSMMMAMMMSMMSMSMXMAXMSMSMXAAAMMMMSAMXXMAMXAMXMASXAAXAXAMMXAMXXXMASMSMXMMMXSMASASMMMASXSSSMAMAXXASAMXAMXXAMMMAMAXAMAMMMMMSXSAAAASAMAXSMSMS +XSXAAMMMAAAAAAXMAXMMASMAAAAAMSMMMXSASASMMMSSMMMSMAMSMSSSMSAMSMSMSXSAMXAMMXMAXXXAMXAMXMAMXAAXMAMMMMMAMXAMXMMSMXSAMXSXMAMAAAMAASMXSAXAXSMSAAAX +MAMSXSASXSMSSSMMAMAXAAMXMXMMMAAXMASMSAMAAAAAAAAXXAXXSAAAAXAAAAAAAMMAMSXSMASMSMSMMSSSSMMMXMMMMXSAMMXAXMAMAMMMAAAXSMXMMMSSMSMMMMAXMXSMMMAMSMMM +AMXXAMXSXAXAMMMSSMMMMSMXMXMASMSSMASAMMSSMMSSMMXSSMSXMMSMMXMSMSMMMMSMMSXMXMMAAAAAMAAAXAMMXXSXMAMASMMMMXAMMSASMMMXSAMXAAXXAAXXMMMMMASAAMAMAMXA +SXMMMSMSMSMXSAAAAAXXMAXAAASASAAAMAMAXAAAXMAXAXMMAAXMMAXMAMXMAAMXSAMAAXAMASMXMXSSMMSMSXMASMMMMASMMXAAASMSAMXSMSXMMMMSMSSMSMSMMAAAMAMMMMASAMMS +AMXAAAXXAXAAAMMSXMMXSASMSMSAMMSSMMSMMMXXMMASMMMSAMSAMMMMSAMMXMSASAMMMSASASMMSAMXAXXMAXXXAAAMMMSXASMSXMSAMXXMXSAMXXXXAAMAAMXASMXSMMSAXSASASAX +MASMSSSMSMSMXMAXXSAXMASXAASXXXAXXXAMAMXSXMAMXAXAAMXMMXASASMAMSMMMAMXMXMMASAASAMXSMXAASMMSMXMAAMMMMXXAMXMASMSASAMSSMMMMMXMSSMMSMAAMAMXMASXMXS +XMXMAMAMMAMXXXAMXMASMMSAMXMMXMASXSXSMSXAAMSSSSSSSSSXMSMSAXMMSAAXSMMMMASMSMMMSAMAMMXSAMXAAAXSMMSAXSMSXXAMXMASASMMMMAXMASAMAAXAAMSMMXXAMAMAXAX +SAAMMSAMMXMMSAMXSMASAMXXXXXASMMSXMASASMSMMAAAXMXAAMXMAAMXMAMSXSMSAAASASXAAMAXAMAXAMXAMMMMXMAMXMASXAXMSMXXMXMXMXAASMMSASASXMMMSXMSAMXMMSSSMSA +XSXMAXASMAXAXAMXMMMSAMASMMASAAASAMMMAMAAMXMXMAMMMMMMSMSAASXMSXMASMMMMAXMSSMXSXMSSSXSAMXMASMSMSSSSMMMXAAMSMMSSMSXMXAMMMXXMAXAAMAMXMASXMAAAAAM +MAXMSSMMXMSSMMMXXAXMMMASASMXSMMSAMAMAMSMSAXSXMXSAMXAXMXMMXASXMMAMSSSMSMAXXMMSXAXAMASXMMMMSAAAAXAXAAASMSMAAASAMXMSSSMXASXMSMSXMAMMXXSAMMSMMMX +AMXXAAXMAMAAAXAXSMSAAMXMAMXAMXMSAMXMSMMASMSSMMMSAMXSMSMMMSMMAXMSMAXAAAMSMSAAXMMMAMAMAAAXAMXMMMSMSSMMSAAMMMMMMMSXAAAMMMSAAXAMXXXMXMASAMAXAXXM +SXMMSSMSMMSXMMSMMXSXMXMMAMMSSSXXAXAXXASAXMAMAAAXXAXMXSAAAAASMMXXAMSMMMXAASMSSXSSMMASMMXMMSMXXXAXAAAAMXMSXSSSMASMMSMMAXMMMMAMXMSSSMXSAMXSMMMA +XAMXMAMAXAXAMAMAMAMXXAAMAMXMAMAXAMSXSAMXSMMSMMMSASMSASXMSSMMMXSMSMAXMXSMMMAAAXMASMXSAMXSXMMMSSMSSSMMMXXAAAAMMASXMAXSMXMXMSAMASAAXAASMMAMASAS +SAXSAMXXMMMMMAMMMXSAMXSMAMMMAMXSAMXMMXMMXAASMMMMAMAMAXXXAXMASMXAAMXMXAAAXXXMMMSAMXAXAXASASXAMAMAMXMMSSSMMMMMMMSMXMXSMSMAMSXSXMMSMMMSAMXSAXSM +SAMXXSMMXAASMMSXSAMXXAAXXMAXXSAAXSAMXMASXMMSAXXMAMXMSMSMMXSAMXMSMSSMMMSAMXMMXMMAMMXMAMASAMMSSMMMSMXXAAXXAAAMXMSMMSAMXAXAXSMMAAXMAMAXMAXMXMAM +XXAXAAAAMXXSAXSAMASAMSSMMSXSAAMMMSXXSAXXSAAMXMMXXSXAAAAAAAMASXXMMAAAAAMAMMAXASMSMSMXMAXMMMAXXXXXXXMMMSMXSSMSAMXAAMASXMSSMMASMMSSSMASXSMASMMM +MASMSMMMSMAMXMMASXMAMAAAXAMXMMSXAXXMASAAXMMMXXSAAAMSMMMMMXMAMXMAMMSAMXXAMSSSXSAXASAAMSMSASMMSMMMXMASAAAXMXMAMXMMMSXMMAAMSSXMMAXAMXAMXAMAMAMX +AMXAXXMAXMAMAXXAMXMXASXMMMSSXXXMMSMXAMMXMMMSMAAMSMMXMMSMMMMSSMSAMMMMMSMAMXAAMMAMAMXMXAAXASAASAAAASMMSSXMMAXAMXMSAMXMMMMSAXAXSXMXMASAMMMASAMS +XXMXMAMXXSMSMSMMSMAAXASXSAAXSASMMAXMASXASAAAMXMAMXAMXAAAAAMAAXSASXSMAAXAMMSMAMAMMMASMMXMAMMSMSMSXSAMXXAASMMMSAAMASASMMMMMSMMMAMMMMMAMXSASMSA +SSMSMSMMMMAMAAXSMMSMSASMXMASMXMASAMSAMXAMMSMMXXASAMMMXMMMSMMSMSXMMMMSSSMSAMXSSXSMMMSAAMSAMXAAAMMASMMAXSMMAAASMSMSSXSAASAXAAAXAMAAASAMXMASXMM +XMAAMAMAAMAMSMSAXAAAMXMAMXMXMXSAMXMMSSMMSXMASMMXSASXXSXSAAASMMXXAAAAAAMXMMSMAMMMXAAMMXMSASMMSMXSAMXMAMMXMSXMXSAXAXAXMMSMSSSSSSSSMMSXMAAASMSX +MMSMSASMSXXXAMXMMMSXMAMSMASAMMSASXAAAXAAAASAMASMMAMAAAAXSSXMAMMMSSMSMMMXMASXXMASMMSSXMXSAMAMXXAMASXMXMMAXXMASMXXMMASMMMMAAMAAXMASMXMXXSAXAAX +AAMAMXSXMXSSXXAXMXAASMXMMXXASASAMMMMMSMMMMMAXXMAMXMMMMSMMMMMAMAXXMAMAMXMMMSMMXMXMAXXAXAXMSAMXMXSAMAXAMXMSAXMMMSAXMAMAASMMSMMSMMSMSASXMAXMXMX +MMSSMASAMAMAMSXSAMMMMSASMSSMMMSXMAXXXMAMSASAMSSMMAMXAXMAXAAMSXSMSXMXAXAXSXMASASMMSMSMMXMASMSAMASASXMASAMSAMXAAMMXMASXMMAAXAAXAXMAMMMAAAMSMSM +SXAAMAMAMAMAMASMASMAASXMAMMXMXMXMAXMXMAMAMMAMXAASAMSMSSSMMSAMXMMSASMSMSSXASAMAMAAXMXAXXAMSXSASMSAMXMASAXSMXSMSXSASXSAASMMSMMSMMMSMAXSMMSXAXA +AMSSMSSMXSSXSSMSAMMMMMAMMMSASAAXSAMMMMASMMSXMSSMMXASAMAXXAMXSMMASAMAMAXMMMMMSSSMMSASMMMSAMASAMMMAMXMASMMXAASAMASAMASMMMMXXAXMAAAMMXMAAXSMMMS +MAMAMXAAAMXMXAAMXXXMMMXMXXSASXSXMASAAMXXXMMSAAAXAMXMAMMMMXSMSAMAMXMAMSMSXXAMAMXMAXMAAAAAAMXMMMXSXSMMASMMMMMMAMMMSMMMXSASXSSSMMMMXAXXMMMSAMXX +XXSAMSMMXSAAXMMMSMMSAMAXXMMMMMMAXASMSSMSSMAMMSSMAAXSXMXMXMAASMMASASXMAAAXSXMASMSSMSSSMXMXMXMAMMMMMAMASAXXAMSSMMAXXAMMMAXAMAAAXMAMSMSAAXSAMAS +SMSAMXMAXMAMXXSAAAASASXMASAAAAXXMASXAAAAXMASXXXAMSMMXSAXAAXXSASASMXMSMSMMMMSXMXAAAAXAXXSSSMSASAXASXMXSXSSMXAXAMXSXMSAMSMSMSSMMMASAAMSMMMMMAS +MASXMMMSSMXSAAMXSMMMAMXASMSSSSMSMXXXMMMMXSAMXSSSMMMMASASXMSASAMXMXAAAAXXAAAAMXMMMMMSXMAXAAXSASXSXSXXXMXMASMASXMXMXXMXMXAXAAAMXSXSMSMMMSMMMXM +SMSXXSAAXMAMMSMMXAMMAMMMXAAMAAAAMSMSXASAMMMSAMXMAAAMMMAMAAMMMAMAMSSSMMMSSSSMMXMAAAAMASMMSMMMAMASMMMMAMAMMMXXAMXAMASXSSMMMMSSMASAXXXAXAAMSMSX +MAMAMMMMSMMSMMAXSAMSSMSAMMMSXMSMXAAMXXMXMAAMASAMMSMSAMXMXMMAMAMXXAAAXSAMXMAAXAXSMMASMMSAAXAMMMMMAASMMXXXSAMXXSSXSAXMAAAXAXAAMXSMMMMSMSMSAAXM +MSMSMASXMAMXASXMMSMSAMMMSAAXXXAMMMXMMMSMMSXSAMASXMASMSMMMMSXSMMSXMSMMMMSSXSMMMMMASXMAAMSMMSXMASXSMSAXMSMMMXMXAAAMMSSSMMXMSXMAMMASXAXXMSSMMMA +AXAXAASMSAMXMMSMAMXSSMAXSMSSSSXSAMAASAMMAXAMXSAMAMAMAAXXAAAAAAAAAMMMXXMAXXAXASAMXSAMMMMASMXMSASXAASAMXXAAAASMMAMMSAMXXXXXAMXMASAMMSSXMAMAASM +SMXMMMSXAXXXAAXMASXMAMSXXAMAMAASAMSAMASMMXAMASXMAMSMSMSSMSXMSMMSXMASXSMASMMMMMMMAMAMSMSASXXAMMSXSMSASAMSMSXXAXMASMMSSMMXAASXXMMMSAAMMMXMMMSA +MAMXAMXMMASXMXSMSSMSAMXAMSMSMMMMXMXASAMASMMMAMASASXAAAXXAMMAXXAXAMXMMAMASAXAXAMMSSMMMXMXMXSSMXXAMXSXMAMMAXASMMMSXMAMAAMSSMMXAXAAMMXMASMMXAMX +SMAXXSAMXMSAMASMAXAMASMAMXAMXAXMAXXAMAMAMXAMSSMMSMMXMMMSXXASMMSSXMAMSXMAMMMSSMSAMAXMSAMASASAMXMXMAXASMMSAXXAASXMASMSXMMAMSSSMMSXSAMSMSAASMMM +SXSMAXMMAMXAMAXMXMMSAMXMSMSMSSMSAMMSMMSAMXMXMAMMAXAMMSMAXSMMAAAMASMMMMMMSXAXAAMASMMXSASXMXSXMXAAMXMXMSAMXMMSMMASAMAMMMMMSAXAAAXAXMMAXMMMMAAX +SAMMSXXXASXSMSSSMMXMXSXMAAAAMAXMASXXAMXAMAMASMMSMSMASAMXMMASMMXSAMMAMXMXAMXXMMSMMAXASAMXMAMXXASXSSXSAMXSAAXAXMAMXMMMAMSXMMSSMMMMMMSMSSXXSSMS +SAXAXAMSMMAXAMAXAMAMXMASMSMSMXMSSMXMMMSXXXSASXAAMAMXMXXSASAMAMXMASMXMXMAAAMMSASXSSMMMXMAMMSSMAMXAASMXSXSXSMXXMXSAMXSXSMAAXXAMXAXAXAXSMAXMAAA +MAMAMSMAAMAMAMAMMMAMASXMAXXXMMMXAAXXSAMXSXMXSMSSSMMSMSMMAMAMAMASAMMMMAMMXSAAMAMXAAAMAMSAMSAMXAMXSMSSMSAMAMASMMMMASAXMAXXMSXMASASMSMMSAMMSMMM +SXSXMAXMMMXSAMASXXXXAMXMAMMMSAMSMMMMMASXAAMASAAMAMMSAAXMSMMSASMMMSMASAMXAMMMMAMSSMMMAXMAMMAXSXSXXXMAMXAMXMAAAAASMMASXSSMMXMMXAAXAAXASAMXXASX +AMMAXASMSXMMAMAXAASMSMSMMXSASXMXMMSXSAMXMMXAMMMXSMAMXMAMAAXAAXXAMAXMXAXAAMXXXAXMAXMMXMSAXSXMMMMMMMSMMMMMXMMSSMXAMXXXXAAXXAXXAMSMMMSXSXMASMMM +SMMXMXXMAASMSMSSMXMAMAXXMAMMMMXASASXMAMMXMMMXMSAXMSSMXMSSSMMMMSAMXSXSAMSXMXMSSXSMMMSAXSMMSMAMASAAMAXMAXAMXAAXMASXMSMMSMMMMSMMSMXAAMMMMMXXMAS +MAASMMSMSMMAMAMXXASMMMMXMASXSXSAMASMSSMAAMASAAMASXAXMAMMAAAXXAXXASAMMAMMASXMAMAAXAAMMMMXAXAXSASXSMMSMSMAMMMXSMMXAAAXAAMAAAAXXAMXMSXMAAXASMXX +MMMSAAXAMMMAMAMMMMASMMSSSMSXAXMSMXMMAMMSASASMSMMMMMSXSSMMSMMMXSMMMASMXSMMMAMASMMMMMSXSSMSXSAMXSAMAXSAMSAMXAXSAMSMMMMSXSSMMAXMAMXXMAMSMSASMMS +XSXSMMMXMXMAMAMAAXMAXAMXAAMMMAAAXMAMAMAXMAMMXAMMMSXAMMAMAAAASMXAXSSMMASAMSXMASAAXMXSAMXAAAMSMMMAMMAMAMSXMMSXSAMMASXAMAXASXMXSAXSSSSMAAMMMMAA +MSAXMAAASXSXSMSSSSXSAMSXMMMAXSMMMSASXSSSSSSSXXXAAMMSXSAMXSAMXMASAMXAMASXMXMMASAMXMAMXMASMMMAXXMAMXMSAMXSMXXASXMXAMXSMXMAMXAAMMSXAAXMMMMSAMSS +AMXMMMMMMAMXAAMAAMAMMASXSASXMXAXXSASAAXAAAXMASMMMSAMMMAMAAXMASAXASMXMAMAMXAMXSXMAMASAMAXXMXASXXAXXASASAAMAMMMMSMMMXXXMMXMMMMSMXMMMMMXSXMAXXX +XMMSXSXSMMMSMMMMXMAMXMMASASMMSXMAMMMMMMMMMMMMMAMMMMSASXMASMSMSMSMMMAMMSMMXMSASAMASMSAMASASXASMSSXMMSMMMMMAXAAASASAXMMMXASASAMMXMXMAMASASMMMS +XSAMXMAXAAAAAMXSMMAMAXMAMSMAXMAMXSSMMXSAMXAXASXMXMASAMXMSMMXAXMAMAMXXAAXSMMMASAMASXSXMASAMMAMAAAASXSAAXXSXSMXMXAMMMSAAMSSXMASMSMASAMAMMMAXAM +XMASMMAMMMSSSMXMASXSSSMSSMSMAMAMXAAAAASASMSSMSAMAMMMAXXMAAMMAMSASXMXXXSXMAXMXMAMASXMASMMXMSSMMMSMMAMMXSAXXAXSXMMMXAXSXSXMASXMAAXAXMMAMXMMMSS +XSAMASXSXAXXMXMXAXAAAXXMSAASMSXXXMSMMXXXMAAMXSASXSMSMMSSSSMMMMMASMSMSXXASXMMMSMMXMASAMXAAXAAXMAXAMXMAXMAMXXMAMMSAMXMMXAXMASAMXMMSSSMMMSAXMXX +MMASXMAXMMMXMAAMXSMMMMSMMMMSMAMSMXAMXMSMMMMMAMMMMXAAXXXAMAMXAAMMXAAAXASMMAAAAAXXASAMAAMXMMSAMXXSXMMMMSMXMSSMXSASASXAAXMMMAMXXSAXAAAAAAMAMXXX +XSMMMMSMMAAAMMSAXAXAXAXAAXXXMAAAAXMSAMAAAXXMAXMAMMSSSSMXMASMSSSMMSMMMMMXMMXMMXSAMMASMMXSXMASMSXMAAMAAAXXMXAAAMXSAMMMAMXSAMXAXXAMXSSMMMSASMSM +MSAMXAAASMSSSMXAMMSMMXSMMXSASXSSSMASASMSMSSMAXSASAAAMAMXMASXAMXMAMAXAXAAMSSSXMMAXAASASASXSAMMSASXMSMSSMSMSMMXXAMXMASXMAXMSMXSSXXAMAXAASAMAAA +AMAXMAMMMMAAXAXXAXAMMMXAAAMMMAAAAMXMAMMMAMXMAMXAMMSMSAMXXAMMXMXMAMXSMSMXSAAXMASXMSXSAMASAMAXAMAMAAXAXMAAMXXXSAMXXAAMAMMXXMAMMAMXMMMMAMMMMSMX +MSMMXSSSMMXSMMMMSSXSXMMMMXSMMSMSMMAMAMXMAMXMASMAMMMXSASXMASAASXSMMXSAAXSMMSMXAAXAMAMXMAMMMSMMMAMMMMSMMSMSXMASXMMMMMXSASMMMSMSASASAXSSXMAMASA +MMASAMXMASXMAXAAMAMMASXMMXAMXXAAXSAMXMASAMXSAXXAMXAXXMAXSSSMMSAAASASMMMXASXAMMSMAMXMSXMXSAMAXSASXSMMAMXXMAMXXXXAAAAXXAAAAAAXSASASMMAAMXXSASX +MSAMXMASXMASAMMSSMASAXMASMMMMMSMMMASAMXSAMAXXMMMMMXMAXMAMXMAXMXMMMASXAXSXMXXAMAAXSSSMASMMMSAMSASAAAMMMSMMSXMASMSSXSMMXMSMSSXMAMAMMSMMSSMMXMX +AAXMMMMSASAAASAAAXAMMMMAMXMAXMAMMXXMAMASAMXXSMSASXMXXMSMMSSMMMMXXMMMMXXSAMXMMSASAMXASAMAAXMMMMAMMMSXMASAAAMMMAMAMXMXSAXAXAXXMAMXSAMXXAAASMMX +MSMMXSASAMMSMMMSSMMSXXMXSASMMSASAAMMXMXSAMXAMASXSAMSSMSAAAAAAMAMSMSASMMSAMXSXAMXMXSMMMSSXMASXSMSXAMAMASMMXXAMXMXMAMASASXSMMXXXXAMASAMXSSMAAX +AAAXASAMXMXAXAXXXASAMSMMSASAASMMMXSAXSMSXMMXXAMMSAMXAASMMSSSMMXAAAMASXAXMMAXMAMAMMSXMMMMXASXMAASMSXXMMXXMASMSMMMSMMMSAMMAMASXMSMSXMASXMAMSMS +SSSMXSASMSSSSMMSAXMAMXAAMXMMMSXMAAMMMXAXAXMMMMSAMAMXMMMMXXAAMXMSMSMAMMMSMMMSXSMASAMAXMAMXMAAXMMMMAMSXSSSMXSAAXMASAAASAMXAMXXAAAASASXSMXSXMAS +MMAMXSAMAAAAAAAAMMSMMSMMSASXAXMMMMSMAXSMMAXAAXMXSSMSXSASXSMMMMMAAXMSAXMAMASXAMSAMASXMMMSSMSMMMXXMAMXAXAAXAMXASXSSSMXMAMSXSXSMMMMSAMAMAAMAMAM +SXSMMMMMMMMMMMMSMAXAMXAASXSMSSXAASAMAMXAXSSXSASMXMAAAMAMAAAAAXMXSXXAMMSSSMSMMMMXMAMMSAMAXMAXAMXMSMSMMMSMMMSAMXMAMAMASXMMMMMAXAAMMMMAMSMXAMXS +AAMXXAASAMXAXAAXMSSMMSMMXMMXMAXSMSASMSSXMXAXMASMMMSMMMAMXMMMXMMSAMXMAXAMAMXAXAMMXASXSXMXSXSSSSMXAAAAMXMXXAAXXAMMMMSAXXAAAXMMSSMSASMSXMMSMMAA +MSMASMMSXMSMSMSSMAXMAXMXMASAXMAMXSAMXAMMMMMMMAMAXMXMXSSSXSAMSSMAAMMXXMXSAMXSMAASXXMAXAMAMMAMXAXXSSSSMAMXMASMMMMSAAMXSSSMXMAAAAXSASXMAXXAXMXM +XAXAAAAXAMAMAMXAXAMMSMAASXMXSMXXMXXSMMMMAAAMMMSMMXAMMMAAXMAXAAXXMMXSMMXSXSAASXMAMMMXMASAMASASMMXMAMXXAXAXMAXAXASMSSMMXAAAMMMMSMMMMASAMSMSSSS +SMSMSMMMXSASMSSSMXSAAASMSAMXMASMMMMXAXMMSSMMAMAMMSMXAAMMMSSMSSMSXSXMAXAXXSAMSSSMSMAASXMASAXMMASXMMASXMXSSMXSSMXSAAMAASMMMMMAAXAAASAMAXXAMAAA +SXXAMXSXAXAMXMAXXMMMSMXXSAMSAMXAAAXMSMMMAXMSMSASXMMSSSXXXAAMXAAXXSXXSMMSAMAXXAMAAMSMSAXXMAXASMMXSAAXXAXXAMAAMXMMXMAMMXAMAMSAMXSSMSXMMMMSMMMM +MXSXMAMMSSMXMXXMMMAAMAXAMAMXAMSMSXXAAAXMAMXAXXXXAAAAXXXMMMMSSMMMMMSAXAMAMSMMMMMSMXMXXMASMMSAMMXXXMAMMSMSAMMSMMMAMXXMSSSMAXAAXMAXAXMAAAXXAMXX +MAMMMXSAASAASMSAAMASXMMSMSMSMMSXAAMSMSMMAMSSSMASXMMSSMSMMSAXMASXMAMXXMMMXAAAAXMXXAXAMXXXAXMMMXMMMMSMAAAMSMXMASMAMSMXAAXMMMMAMXXMXMASMSSSSMSM +MXSASXMMSXSXSAASXMAXAMXAAAAXMAMMMMMXAXXXAXXAAMAMXAXAAAXAAMASMXMXMASMSSMXSSSMSSMAMSSMSMSMMMMASAAMSAAMSMSMAXMMAMXAMXMMMSMSMAXSXMASASXXMAXAAAAA +SSMXSAAXAMMMMXMMMMMSAASMSMSMMMXSXXSMMMSSMXMXMMSSSXMXMXMMMSSMMAMXSASAAAXXMAXXXAMAMXAMAXAAAMMAMASXMSXXAAXXMSASMSSMSAMXMAMAMSMXAXASASXMMSMMMSMS +MAMASXMMSAAAMAXAXAXSMMXMAMAAMMASMMMASAMASXAASMMMMAASMSAAMXAASMSMSMSMSMMSMMMMSMMMXXAMMSSXMSMXSMMAMXSSMSMMXXAAAAMMSMMASASASAXSXMMMAMXMAMAAAAXA +SMMASASMASMSXMSMMMXXSXXMXSMSMMASAXSAMXSAAMSMMAAAXMXAAXXMSSSMMXSASASXXAMXAXXAAXAAMSAMXAAASAXMAXSAMSXMMAAMSMSMMMSAMASASASXSMXSAMXMXMXMAXSMSMSX +AXMXMAXAMXXMXAAAMSMMAMSMMSAXXMASXMMXSMMMMXMASXMSXXMMMMSSXMMAXXMAMAMAMASMMMMSMSMXMAMXMMMMSASMMMMXMMAXXMMMAAAXAXMASMMMMAMXXMASAMASAMAMSXMXXASM +MMSSMMMSXSASMSMSMAAMMAAAAMAMXSXMXAMAXMASXMMMMXAAASAMXAXAAXSSMXMAMAMAMAMAAAXAAAASMMMXXXXXMXMMXAAAMMMMMSASMSMSMSSMMXXXMAMSSMMSXMASASMSMASAMASM +XAAAAXMAAMAMAXMAMXMMXSSSMMSMAXASMSMSMSAMAASXSMXMASASMMSSSMAXASMMSMSMSAMSMMMXXMMMAAMXSAMSSMMSMSMXSAMAAMXMXAXAMMAAXSMMXSSXAXXXAMMSAMXAMXMAMASM +MMMXMMMMXMMMSMSMSSMSXMXAAXXMAXXAAAAAMMMSMMMAXXXAASAMAMXAMMXMMMMAAXAMMXMMAAASXSASMMMSMAMAAMXSAXAASAMMXMAASMSSSSMMMSAAAXMXMSMMAMXMMMSXMMXXMAMX +MSSXMAAXAAXXMXMXAAXSASMSASMSASMMSMSMSXAAAAMMMMSMMMMSSMMAMMMSXAXSMXMSASMSXMMSAMMXAAXXMAMSSMXMAMAMMXMAXXMMAMAAMAASASMMMSAMXSAXSXMASAMXMAXSMSMS +AAAAMSSXMSSMSAMXSMMSXMAXAAAAAAXXAXXAXMSSSMMXAAAXXAAMAMMSSXAASXMASXXMXSXMASXMAMXXXMMSSMXXAAAMXMAXSSMMMASXSMMSMSMMASAAXAAMASMMAASAMXXSXXXAAAMA +MMSSMAMMXMAXSXSAMAAMMMSMMMSMSMSSXXMXMXAXXXXSMXSMMMSSMMAMAASMAMSAMXXMASASASASXMMSAAXXAMMMMMMMAMMSMXASXMSAMSAAXAXMXMMSSSMMXSXXSAMMSAXSASAMSMSM +XXAXMAMMASMMXMMAMMXSAAAAXAMXXAAAMSMSAMXSMSMSAAXMXAMAMMMMSAMXMMXAMXMXASAMASXMXAASXMMSMMSAAAMXSXSAMMAMAXMAMMMMSXXXMMSAMXAXAXXXXXMAMMSMAMMXMAMX +MMMSMMMSASXAAASMMAXSMMSSMMSMMXMMMAAAMAMXAXAMMMMAMSMMMXSAMAXXXXMSAMXSXMXMAXMMMMMSASAAXASXXMSAMMSASMSSMMMSMSSMMMMAAXMASXMMXSMMMXMASXXMAMXMMAMM +AAMXMAMMAMXXMMAAXAAXAAXXAMXAAXMSSMMMASAMXMSMSASMMXAAAASXSSMSMSAMASASAMXMSSMXAAAMMMAMMASAXSMXSASXMMAAAXMAAAAAAXSASMSMMMMSAXAAAXSXMMMSXXXAMXMA +SXSASXMXASXSMMSMMXXSMMMSSMMSMMSAMXXXAMAMSAMASAMXAMSMMMSAXXAAASASAMASXMAAMAXASMSXXXMXSXMMMAASMMMSAMXSMMSMSMSMMMSAXAAAMXAMMMSSSMMAMMMAMMMSXASM +XASASAXSASASXAAAXMXMASXAXXAAASMMXSAMXSAMMSSMMSMMMMXMSAMXMMSMXMMMXMXMASMSMMMAXAMMSXMASXMAXMMMAXAXXSAMXAXAMXXAMXMAMSMSMMXSXAXMAMSAMAMASAAXSMMX +MAMAMAMMAMAMMSMSAMMSAMMXMMSSSMAAXMSAASASAASMAAXASAMXMASASAXSAASAXMASAMSAASMXMAMAMXMASASMSXMSAMXSAMMSMASXMASXMAMMMXMXAXAMMSXSAMXASXSASMSMSXAM +MSMSMAMMAMXMAMMXMAMXSSXAXXXXXXMMSAMXMSSMMSSMSSSXSXAXSMMMAXMASXMMXSAMXSMSSXAMSXMASAMXSAMXSAMXMAAAXSXXXMAMXMASXXSMXMASAMXXSAMXXSSMMXMXSMMAMXXS diff --git a/2024/day-4/solution-1.sh b/2024/day-4/solution-1.sh new file mode 100644 index 0000000..355206e --- /dev/null +++ b/2024/day-4/solution-1.sh @@ -0,0 +1,109 @@ +#!/usr/bin/env bash + +# Horizontal search +TOTAL_XMAS=$( grep -o 'XMAS' input.txt | wc -l ) +TOTAL_XMAS=$(( TOTAL_XMAS + $( grep -o 'SAMX' input.txt | wc -l ) )) + +# Add spaces for cut use +sed -E 's/(.)/\1\ /g' input.txt > input-proc +FIELD_COUNT=$( head -1 input-proc | awk '{print NF}' ) +LINE_COUNT=$( cat input-proc | wc -l ) +INPUT_PROC=$( cat input-proc ) + +# Transpose for vertical search +TOTAL_XMAS=$(( + TOTAL_XMAS + $( + RSTRING=$( + for i in $( seq 1 $FIELD_COUNT ) + do + printf "$INPUT_PROC" | cut -f $i -d " " | paste -s -d '' + done + ) + echo $( printf "$RSTRING" | grep -o 'XMAS' | wc -l ) + $( printf "$RSTRING" | grep -o 'SAMX' | wc -l ) | bc + ) +)) + +# Diagonal forward search +for COL_START in $( seq 1 $FIELD_COUNT ) +do + COL_COUNTER=$COL_START + TOTAL_XMAS=$(( + TOTAL_XMAS + $( + RSTRING=$( + while read -r LINE + do + if [[ $COL_COUNTER -gt $FIELD_COUNT || $COL_COUNTER < 1 ]] + then + continue + fi + printf "$LINE" | cut -f $COL_COUNTER -d " " + (( COL_COUNTER++ )) + done <<< "$INPUT_PROC" | paste -s -d "" + ) + echo $( printf "$RSTRING" | grep -o 'XMAS' | wc -l ) + $( printf "$RSTRING" | grep -o 'SAMX' | wc -l ) | bc + ) + )) +done +for ROW_START in $( seq 2 $LINE_COUNT ) +do + COL_COUNTER=1 + TOTAL_XMAS=$(( + TOTAL_XMAS + $( + RSTRING=$( + while read -r LINE + do + if [[ $COL_COUNTER -gt $FIELD_COUNT || $COL_COUNTER < 1 ]] + then + continue + fi + printf "$LINE" | cut -f $COL_COUNTER -d " " + (( COL_COUNTER++ )) + done <<< "$( tail -n +$ROW_START input-proc )" | paste -s -d "" + ) + echo $( printf "$RSTRING" | grep -o 'XMAS' | wc -l ) + $( printf "$RSTRING" | grep -o 'SAMX' | wc -l ) | bc + ) + )) +done +# Diagonal backwards search +for COL_START in $( seq $FIELD_COUNT -1 1 ) +do + COL_COUNTER=$COL_START + TOTAL_XMAS=$(( + TOTAL_XMAS + $( + RSTRING=$( + while read -r LINE + do + if [[ $COL_COUNTER -gt $FIELD_COUNT || $COL_COUNTER < 1 ]] + then + continue + fi + printf "$LINE" | cut -f $COL_COUNTER -d " " + (( COL_COUNTER-- )) + done <<< "$INPUT_PROC" | paste -s -d "" + ) + echo $( printf "$RSTRING" | grep -o 'XMAS' | wc -l ) + $( printf "$RSTRING" | grep -o 'SAMX' | wc -l ) | bc + ) + )) +done +for ROW_START in $( seq 2 $LINE_COUNT ) +do + COL_COUNTER=$FIELD_COUNT + TOTAL_XMAS=$(( + TOTAL_XMAS + $( + RSTRING=$( + while read -r LINE + do + if [[ $COL_COUNTER -gt $FIELD_COUNT || $COL_COUNTER < 1 ]] + then + continue + fi + printf "$LINE" | cut -f $COL_COUNTER -d " " + (( COL_COUNTER-- )) + done <<< "$( tail -n +$ROW_START input-proc )" | paste -s -d "" + ) + echo $( printf "$RSTRING" | grep -o 'XMAS' | wc -l ) + $( printf "$RSTRING" | grep -o 'SAMX' | wc -l ) | bc + ) + )) +done + +printf "%s\n" "$TOTAL_XMAS" diff --git a/2024/day-4/solution-2.sh b/2024/day-4/solution-2.sh new file mode 100644 index 0000000..3ce5b40 --- /dev/null +++ b/2024/day-4/solution-2.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +paste -s -d '' input.txt | + perl -lne ' + print "$1$4$2$3" + while + /(?<=(.).)(?<=(.).{138})A(?=.{138}(.))(?=.(.))/g + ' | + grep -Eo '(SM|MS){2}' | + wc -l