aoc2015

Advent of Code 2015 solutions in Perl.
git clone git://git.samirparikh.com/aoc2015
Log | Files | Refs | README

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:
Mday02/day02.pl | 24++++++++++++++----------
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;