From 8008efa1d19d7a9e6dfe9a87f0d1638597988f65409333dddf313b740dd068be Mon Sep 17 00:00:00 2001 From: nazrin Date: Thu, 5 Dec 2024 20:55:54 +0000 Subject: [PATCH] Day 4 --- 4.jl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 4.jl diff --git a/4.jl b/4.jl new file mode 100644 index 0000000..cbabb31 --- /dev/null +++ b/4.jl @@ -0,0 +1,18 @@ + +const matchEitherDir(a) = fn(b) = all(a .== b) || all(reverse(a) .== b) + +const d = [ collect(line) for line in readlines("input/4") ] +const size = length(d) + +partOne, partTwo = 0, 0 + +for y in 1:size + for x in 1:size + grid(dirs, range) = ( ( try d[y+i*u][x+i*v] catch end for i in range ) for (u,v) in dirs ) + global partOne += count(matchEitherDir(collect("XMAS")), grid([ (0, 1), (1, 0), (1, 1), (-1, 1) ], 0:3)) + global partTwo += all(matchEitherDir(collect("MAS")), grid([ (-1, 1), (1, 1) ], -1:1)) + end +end + +@show partOne, partTwo +