Files
kiss-vscode/projects/_standalone/aoc/src/year2022/Day4.kiss

16 lines
604 B
Plaintext

(defMacro intOverlapCheck [name &body cases]
`(function ,name [line]
(let [[min1 inner max2] (line.split "-")
[max1 min2] (inner.split ",")]
(or
,@(for _case cases
`(apply <= (.map ,_case Std.parseInt)))))))
(intOverlapCheck oneIsSubset [min1 min2 max2 max1] [min2 min1 max1 max2])
(assert (= 441 .length (filter (Util.readLines (input 4)) oneIsSubset)))
(intOverlapCheck hasOverlap [min1 min2 max1] [min1 max2 max1] [min2 min1 max2] [min2 max1 max2])
(assert (= 861 .length (filter (Util.readLines (input 4)) hasOverlap)))