aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AoC2022/04/solver.jl15
1 files changed, 15 insertions, 0 deletions
diff --git a/AoC2022/04/solver.jl b/AoC2022/04/solver.jl
new file mode 100644
index 0000000..0f512ae
--- /dev/null
+++ b/AoC2022/04/solver.jl
@@ -0,0 +1,15 @@
+
+using Test
+
+subinterval(a0, a1, b0, b1) = a0<= b0 && a1 >= b1
+subcontained(a0, a1, b0, b1) = subinterval(a0, a1, b0, b1) || subinterval(b0, b1, a0, a1)
+overlap(a0, a1, b0, b1) = a0 <= b1 && b0 <= a1
+
+data = open("input") do f
+ map(l-> parse.(Int, l), eachsplit.(eachsplit(read(f,String)), r"[,-]"))
+end
+
+@testset "solutions" begin
+ @test map(l-> subcontained(l...) ,data) |>sum == 515
+ @test map(l-> overlap(l...) ,data) |>sum == 883
+end