AoC 2023 day 1
parent
5cbff47a08
commit
b04be01833
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use feature qw(:5.36);
|
||||
use autodie;
|
||||
|
||||
open my $fh, '<', 'input.txt';
|
||||
|
||||
my $total = 0;
|
||||
|
||||
my %map = (
|
||||
one => 1,
|
||||
two => 2,
|
||||
three => 3,
|
||||
four => 4,
|
||||
five => 5,
|
||||
six => 6,
|
||||
seven => 7,
|
||||
eight => 8,
|
||||
nine => 9,
|
||||
);
|
||||
for my $i (1..9) {
|
||||
$map{$i} = $i;
|
||||
}
|
||||
|
||||
for my $line (<$fh>) {
|
||||
chomp $line;
|
||||
$line =~ /^[a-z]*(\d)/;
|
||||
my $x = $1;
|
||||
$line =~ /(\d)[a-z]*$/;
|
||||
my $y = $1;
|
||||
my $z = $x . $y;
|
||||
$total += $z;
|
||||
}
|
||||
say $total;
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use feature qw(:5.36);
|
||||
use autodie;
|
||||
|
||||
open my $fh, '<', 'input.txt';
|
||||
|
||||
my $total = 0;
|
||||
|
||||
my %map = (
|
||||
one => 1,
|
||||
two => 2,
|
||||
three => 3,
|
||||
four => 4,
|
||||
five => 5,
|
||||
six => 6,
|
||||
seven => 7,
|
||||
eight => 8,
|
||||
nine => 9,
|
||||
);
|
||||
for my $i (1..9) {
|
||||
$map{$i} = $i;
|
||||
}
|
||||
|
||||
for my $line (<$fh>) {
|
||||
chomp $line;
|
||||
my $origin = $line;
|
||||
my @digits = ();
|
||||
while ($line =~ /(one|two|three|four|five|six|seven|eight|nine|\d)/) {
|
||||
my $temp = $1;
|
||||
my $temp2 = $temp;
|
||||
unless ($temp =~ /\d/) {
|
||||
$temp2 =~ s/.$//;
|
||||
}
|
||||
$line =~ s/$temp2//;
|
||||
push @digits, $temp;
|
||||
}
|
||||
my $x = $digits[0];
|
||||
my $y = $digits[-1];
|
||||
print "found $map{$x} ($x) and $map{$y} ($y)";
|
||||
my $z = $map{$x} . $map{$y};
|
||||
say ", which is $z, in $origin";
|
||||
$total += $z;
|
||||
}
|
||||
say $total;
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue