aoc2022

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

commit 3d86d1483b60da34abec48937872b1b09f264530
parent bc608fcb0fad5d0e6357e0d4b8ff56df0d94755d
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Thu, 22 Dec 2022 14:25:50 +0000

solve part 2 of day03

Diffstat:
Mday03/day03.pl | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/day03/day03.pl b/day03/day03.pl @@ -10,6 +10,9 @@ chomp( my $input = do { local $/; <> } ); my @rucksacks = split /\n/, $input; my $part1 = 0; +my $part2 = 0; +my $elf_count = 0; +my $combined = ''; foreach my $rucksack ( @rucksacks ) { my $compartment1 = substr( $rucksack, 0, ( length $rucksack ) / 2 ); @@ -24,6 +27,17 @@ foreach my $rucksack ( @rucksacks ) { last; } } + +# see https://abigail.github.io/HTML/AdventOfCode/2022/day-03.html + $combined .= $rucksack . "\n"; + $elf_count++; + if ( $elf_count % 3 == 0 ) { + my ( $badge ) = $combined =~ m/(.).*\n.*\1.*\n.*\1/; + $part2 += ( $badge =~ m/[a-z]/ ) ? ord( $badge ) - ord( 'a' ) + 1 : + ord( $badge ) - ord( 'A' ) + 27; + $combined = ''; + } } say "part 1: ", $part1; +say "part 2: ", $part2;