aoc24/day01.pl
2024-12-02 16:02:27 +01:00

32 lines
566 B
Perl

#!/usr/bin/perl
use strict;
use warnings;
my @list1;
my @list2;
while (<>) {
my @nums = split;
next unless @nums;
push @list1, $nums[0];
push @list2, $nums[1];
}
@list1 = sort { $a <=> $b } @list1;
@list2 = sort { $a <=> $b } @list2;
my $elementwise_diff = 0;
for (my $i = 0; $i < @list1; $i++) {
my $diff = abs($list1[$i] - $list2[$i]);
$elementwise_diff += $diff;
}
print $elementwise_diff . "\n";
my $similarity_score = 0;
for my $element (@list1) {
$similarity_score += $element * grep { $_ == $element } @list2;
}
print $similarity_score . "\n";