This commit is contained in:
insects 2024-12-01 16:38:02 +01:00
commit 79d25cb028
3 changed files with 1049 additions and 0 deletions

1000
day1/input1.txt Normal file

File diff suppressed because it is too large Load diff

43
day1/p1.pl Normal file
View file

@ -0,0 +1,43 @@
use strict;
use warnings;
open(my $in, "<", "input1.txt");
my @nums1;
my @nums2;
# assign numbers correctly
while (<$in>) {
my $trimmed = $_;
$trimmed =~ s/\n//g;
my @parts = split(/\s{3}/, $trimmed);
push(@nums1, $parts[0]);
push(@nums2, $parts[1]);
}
my @sorted1 = sort(@nums1);
my @sorted2 = sort(@nums2);
my $total_length = scalar @sorted1;
#foreach my $i (0..$total_length - 1) {
# print "$sorted1[$i] $sorted2[$i]\n"
#}
my $result = 0;
my $similarity = 0;
foreach my $i (0..$total_length - 1) {
if ($sorted1[$i] > $sorted2[$i]) {
my $distance = $sorted1[$i] - $sorted2[$i];
$result = $result + $distance;
} elsif ($sorted1[$i] < $sorted2[$i]) {
my $distance = $sorted2[$i] - $sorted1[$i];
$result = $result + $distance;
}
my @filtered = grep(/$sorted1[$i]/, @sorted2);
my $numitems = scalar @filtered;
$similarity += $sorted1[$i] * $numitems;
}
print "Total distance: $result\n";
print "Total similarity: $similarity\n";

6
day1/test.txt Normal file
View file

@ -0,0 +1,6 @@
3 4
4 3
2 5
1 3
3 9
3 3