aoc2021

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

commit 8865166808130bb2724a653b3781c250f85ebe1a
parent 78ff4db7334f6a4f092f5c1e2b3914881515dcd3
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Wed,  8 Dec 2021 01:30:01 +0000

update day05-1.pl to provide working solution for Day 05 Part 1

Diffstat:
Mday05-1.pl | 27+++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/day05-1.pl b/day05-1.pl @@ -3,7 +3,8 @@ use strict; use warnings; use v5.22; -#use diagnostics; +use List::Util qw( max ); +use diagnostics; if (@ARGV !=1) { die "Usage: $0 [input-filename]"; @@ -16,9 +17,10 @@ open my $filehandle, '<', $input_filename or chomp( my @input = ( <$filehandle> ) ); my $wait; my @matrix = (); +my $rows = 0; +my $columns = 0; foreach (@input) { my ($x1, $y1, $x2, $y2) = ( /(\d+),(\d+) -> (\d+),(\d+)/ ); - say "input: $x1, $y1 -> $x2, $y2"; if (($x2 <= $x1) && ($y2 <= $y1)) { ($x2, $x1) = ($x1, $x2); ($y2, $y1) = ($y1, $y2); @@ -27,37 +29,34 @@ foreach (@input) { ($x2, $x1) = ($x1, $x2); ($y2, $y1) = ($y1, $y2); } - say "input now: $x1, $y1 -> $x2, $y2"; + $columns = max( $columns, $x1, $x2); + $rows = max( $rows, $y1, $y2); if (($x2 >= $x1) && ($y2 >= $y1)) { - say "i got to A"; for (my $x = $x1; $x < $x2 + 1; $x++) { for (my $y = $y1; $y < $y2 + 1; $y++) { if (($x1 == $x2) || ($y1 == $y2)) { $matrix[$y][$x]++; - say "\$matrix[$y][$x] = $matrix[$y][$x]"; - $wait = <>; } } } } elsif (($x2 >= $x1) && ($y2 <= $y1)) { - say "i got to B"; for (my $x = $x1; $x < $x2 + 1; $x++) { for (my $y = $y2; $y < $y1 + 1; $y++) { if (($x1 == $x2) || ($y1 == $y2)) { $matrix[$y][$x]++; - say "\$matrix[$y][$x] = $matrix[$y][$x]"; - $wait = <>; } } } } } -foreach my $y (0 .. 9) { - foreach my $x (0 .. 9) { - my $char = defined( $matrix[$y][$x] ) ? $matrix[$y][$x] : "."; - print $char; +my $answer; +foreach my $y (0 .. $rows) { + foreach my $x (0 .. $columns) { + if (defined( $matrix[$y][$x] )) { + $answer++ if ($matrix[$y][$x] > 1); + } } - print "\n"; } +say "answer is $answer";