Files
aoc-2024/day-01/main.raku
2024-12-03 11:19:53 +00:00

22 lines
452 B
Raku

use lib $*PROGRAM.parent.parent;
use Lib;
grammar Solution does AOC {
token TOP { (^^ <line> \n)+ { make ([Z] $/[0]>><line>>>.made).List; }}
token line { <num> <.ws> <num> { make $<num>>>.made }}
token num { \d+ { make val($/.Str) }}
method part1(::?CLASS:U: (@l, @r)) {
[+] (@l.sort <<->> @r.sort)>>.abs
}
method part2(::?CLASS:U: (@l, @r)) {
my $bag = @r.Bag;
[+] @l.map(-> $l { $l * $bag{$l} })
}
}
Solution.main()