adventOfCode2024/4/indexP2.js
2025-04-29 22:34:33 +00:00

44 lines
1.2 KiB
JavaScript

const fs = require("fs");
const forwardRegex = /XMAS/;
const backwardRegex = /SAMX/;
const input = fs.readFileSync("input.txt", "utf-8");
const inputArr = input.split("\n");
let totalMatches = 0;
const middleARegex = /.A./
const MMRegex=/M.M/
const SSRegex=/S.S/
const MSRegex=/M.S/
const SMRegex=/S.M/
// console.log(inputArr)
const maxRows = inputArr.length;
const maxLetters = inputArr[0].length;
for (let x = 0; x+2 < maxRows; x++) {
for (let y = 0; y + 2 < maxLetters; y++) {
const topLine = inputArr[x][y]+inputArr[x][y+1]+inputArr[x][y+2]
const middleLine= inputArr[x+1][y]+inputArr[x+1][y+1]+inputArr[x+1][y+2]
const bottomLIne=inputArr[x+2][y]+inputArr[x+2][y+1]+inputArr[x+2][y+2]
if (topLine.match(MMRegex)&&middleLine.match(middleARegex)&&bottomLIne.match(SSRegex)){
totalMatches++
}
if (topLine.match(SSRegex)&&middleLine.match(middleARegex)&&bottomLIne.match(MMRegex)){
totalMatches++
}
if (topLine.match(MSRegex)&&middleLine.match(middleARegex)&&bottomLIne.match(MSRegex)){
totalMatches++
}
if (topLine.match(SMRegex)&&middleLine.match(middleARegex)&&bottomLIne.match(SMRegex)){
totalMatches++
}
}
}
console.log("totalMatches: ", totalMatches);