diff options
-rw-r--r-- | 2021/day10.pl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/2021/day10.pl b/2021/day10.pl new file mode 100644 index 0000000..871ad0b --- /dev/null +++ b/2021/day10.pl @@ -0,0 +1,20 @@ +use strict; +use warnings; +my %pairs = ('(', ')', '[', ']', '{', '}', '<', '>'); +my %scores = (')' => 3, ']' => 57, '}' => 1197, '>' => 25137); +my $score; +while (<>) { + chomp; + my @stack; + for (split //) { + if (index('([{<', $_) != -1) { + unshift @stack, $pairs{$_}; + } elsif ($_ eq $stack[0]) { + shift @stack; + } else { + $score += $scores{$_}; + last; + } + } +} +print "$score\n"; |