commit 423ad4564eca1a9d5460185723ce1816e983a040
parent 9174d8656036482d73d9c50b763400e325b6743a
Author: Samir Parikh <noreply@samirparikh.com>
Date: Wed, 21 Dec 2022 17:17:13 +0000
solve part 2 of day02
Diffstat:
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/day02/day02.pl b/day02/day02.pl
@@ -23,6 +23,12 @@ my %translate = (
Z => 'scissors',
);
+my %translate2 = (
+ X => 'lost',
+ Y => 'draw',
+ Z => 'won',
+ );
+
my %score = (
rock => 1,
paper => 2,
@@ -34,16 +40,27 @@ my %score = (
my @rounds = split /\n/, $input;
my $part1_score = 0;
+my $part2_score = 0;
foreach my $round ( @rounds ) {
my ( $opponent, $me ) = split /\s/, $round;
- #say "opponent = $translate{$opponent} and me = $translate{$me}";
$part1_score += $score{ $translate{ $me } };
if ( $translate{ $me } eq $translate{ $opponent } ) {
$part1_score += $score{ draw };
} elsif ( $defeats{ $translate{ $me } } eq $translate{ $opponent } ) {
$part1_score += $score{ won };
}
+
+ $part2_score += $score{ $translate2{ $me } };
+ if ( $me eq 'X' ) { # must lose
+ $part2_score += $score{ $defeats{ $translate{ $opponent } } };
+ } elsif ( $me eq 'Y' ) { # draw
+ $part2_score += $score{ $translate{ $opponent } };
+ } else { # win
+ my @matching_keys = grep { $defeats{ $_ } eq $translate{ $opponent} } keys %defeats;
+ $part2_score += $score{ $matching_keys[0] };
+ }
}
say "part 1: ", $part1_score;
+say "part 2: ", $part2_score;