|
@ -0,0 +1,34 @@ |
|
|
|
|
|
import aoc from require"utils" |
|
|
|
|
|
rex = require "rex_pcre2" |
|
|
|
|
|
|
|
|
|
|
|
aoc 1, 1, => |
|
|
|
|
|
sum = 0 |
|
|
|
|
|
for k in @gmatch "(%w+)" |
|
|
|
|
|
digits = {} |
|
|
|
|
|
for i = 1, #k |
|
|
|
|
|
if string.match (k\sub i, i), "%d" |
|
|
|
|
|
digits[#digits + 1] = k\sub i, i |
|
|
|
|
|
sum += tonumber (digits[1] .. digits[#digits]) |
|
|
|
|
|
sum |
|
|
|
|
|
|
|
|
|
|
|
aoc 1, 2, => |
|
|
|
|
|
regex = "([0-9]|on(?=e)|tw(?=o)|thre(?=e)|four|fiv(?=e)|six|seve(?=n)|eigh(?=t)|nin(?=e)).*?" |
|
|
|
|
|
rewrite = { |
|
|
|
|
|
on: "1", |
|
|
|
|
|
tw: "2", |
|
|
|
|
|
thre: "3", |
|
|
|
|
|
four: "4", |
|
|
|
|
|
fiv: "5", |
|
|
|
|
|
six: "6", |
|
|
|
|
|
seve: "7", |
|
|
|
|
|
eigh: "8", |
|
|
|
|
|
nin: "9" |
|
|
|
|
|
} |
|
|
|
|
|
sum = 0 |
|
|
|
|
|
for k in @gmatch "(%w+)" |
|
|
|
|
|
digits = {} |
|
|
|
|
|
for d in rex.gmatch k, regex |
|
|
|
|
|
digits[#digits + 1] = rewrite[d] or d |
|
|
|
|
|
sum += tonumber (digits[1] .. digits[#digits]) |
|
|
|
|
|
sum |
|
|
|
|
|
|