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