diff --git a/day 4/day_4_mark.js b/day 4/day_4_mark.js new file mode 100644 index 0000000000000000000000000000000000000000..bff557d448de5d45271722087e107fc7cf592263 --- /dev/null +++ b/day 4/day_4_mark.js @@ -0,0 +1,10 @@ +hor = input.split("\n") +n = hor.length +m = hor[0].length +range = x => [...Array(x).keys()] +vert = range(m).map(i => range(n).map(j => hor[j][i]).join('')) +diag1 = range(n+m-1).map(i => range(m).map(j => (hor[i+j+1-m] ? hor[i+j+1-m][j] : '')).join('')) +diag2 = range(n+m-1).map(i => range(m).map(j => (hor[i-j] ? hor[i-j][j] : '')).join('')) + +output1 = [hor, vert, diag1, diag2].map(z=>z.map(x=>[...x.matchAll(/XMAS/g)].length+[...x.matchAll(/SAMX/g)].length).reduce((x,y)=>x+y)).reduce((x,y)=>x+y) +output2 = range(n).map(i => range(m).map(j=> hor[i][j] == 'A' ? (hor[i-1] && hor[i+1] ? ((hor[i-1][j-1] == 'M' && hor[i+1][j+1] == 'S') || (hor[i-1][j-1] == 'S' && hor[i+1][j+1] == 'M')) && ((hor[i-1][j+1] == 'M' && hor[i+1][j-1] == 'S') || (hor[i-1][j+1] == 'S' && hor[i+1][j-1] == 'M')) : false) : 0).reduce((x,y)=>x+y)).reduce((x,y)=>x+y) \ No newline at end of file