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:
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";