20 lines
569 B
Fennel
20 lines
569 B
Fennel
(io.input "input")
|
|
|
|
(var sum1 0)
|
|
(var sum2 0)
|
|
(each [line (io.lines)]
|
|
(let [pattern "(%d+)-(%d+),(%d+)-(%d+)"
|
|
[ri1 rf1 ri2 rf2]
|
|
(icollect [_ n (-> line (string.match pattern) (table.pack) (ipairs))]
|
|
; (-> ...) equivalent to:
|
|
; (ipairs (table.pack (string.match line pattern)))]
|
|
(tonumber n))]
|
|
(when (or (and (>= ri1 ri2) (<= rf1 rf2))
|
|
(and (>= ri2 ri1) (<= rf2 rf1)))
|
|
(set sum1 (+ sum1 1)))
|
|
(when (and (>= rf1 ri2) (<= ri1 rf2))
|
|
(set sum2 (+ sum2 1)))))
|
|
|
|
(print "part 1" sum1)
|
|
(print "part 2" sum2)
|