commit 460c0321ad85ef4cf03b8c9aa661a12b1e954499
parent 1e181d7daf1df68ff8894b76492986f9a024e2e5
Author: Samir Parikh <noreply@samirparikh.com>
Date: Fri, 14 Oct 2022 18:32:43 +0000
solve part 2 of day02
Diffstat:
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/day02/day02.pl b/day02/day02.pl
@@ -9,19 +9,23 @@ use v5.32;
chomp( my $input = do { local $/; <> } );
-use List::Util qw( min sum );
+use List::Util qw( min sum product );
my @presents = split /\n/, $input;
-my $total;
+my ($total_wrapping_paper, $total_ribbon_length);
+
foreach (@presents) {
my @dimensions = split /x/, $_;
- my @faces;
- $faces[0] = $dimensions[0] * $dimensions[1];
- $faces[1] = $dimensions[1] * $dimensions[2];
- $faces[2] = $dimensions[0] * $dimensions[2];
- my $area = 2* (sum @faces) + (min @faces);
- $total += $area;
+ my (@faces, @perimeters);
+ $faces[0] = $dimensions[0] * $dimensions[1];
+ $faces[1] = $dimensions[1] * $dimensions[2];
+ $faces[2] = $dimensions[0] * $dimensions[2];
+ $perimeters[0] = 2 * ($dimensions[0] + $dimensions[1]);
+ $perimeters[1] = 2 * ($dimensions[1] + $dimensions[2]);
+ $perimeters[2] = 2 * ($dimensions[0] + $dimensions[2]);
+ $total_wrapping_paper += 2 * (sum @faces) + (min @faces);
+ $total_ribbon_length += (min @perimeters) + (product @dimensions);
}
-say "part 1: ", $total;
-say "part 2: ";
+say "part 1: ", $total_wrapping_paper;
+say "part 2: ", $total_ribbon_length;