adventofcode/2016/04/1.pl
Yanick Champoux 64fc6fade0 2016-04
2017-12-28 12:38:33 -05:00

18 lines
368 B
Perl

use 5.20.0;
use List::UtilsBy qw/ sort_by /;
use List::AllUtils qw/ sum /;
use experimental qw/ signatures /;
say sum map { /(\d+)/ } grep { is_real($_) } <>;
sub is_real ( $line ) {
$line =~ s/\[(.*?)\]//;
my $checksum = $1;
$checksum eq join '', ( sort_by {
sprintf "%03d%s", 999 - (eval "\$line =~ y/$_/$_/"), $_
} 'a'..'z' )[0..4];
}