summary refs log tree commit diff homepage
path: root/2021
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-12-10 11:46:57 -0500
committerJune McEnroe <june@causal.agency>2021-12-10 11:46:57 -0500
commit48d7c62520ea05f6ad23a00d37f9e5b90bd4542e (patch)
treeb8fa887058237104c1fde574176ef65d9aff322a /2021
parentSolve day 10 part 1 (diff)
downloadaoc-48d7c62520ea05f6ad23a00d37f9e5b90bd4542e.tar.gz
aoc-48d7c62520ea05f6ad23a00d37f9e5b90bd4542e.zip
Solve day 10 part 2
Diffstat (limited to '2021')
-rw-r--r--2021/day10.pl12
1 files changed, 9 insertions, 3 deletions
diff --git a/2021/day10.pl b/2021/day10.pl
index 871ad0b..e35db27 100644
--- a/2021/day10.pl
+++ b/2021/day10.pl
@@ -2,8 +2,8 @@ use strict;
 use warnings;
 my %pairs = ('(', ')', '[', ']', '{', '}', '<', '>');
 my %scores = (')' => 3, ']' => 57, '}' => 1197, '>' => 25137);
-my $score;
-while (<>) {
+my ($score, @scores2);
+LINE: while (<>) {
 	chomp;
 	my @stack;
 	for (split //) {
@@ -13,8 +13,14 @@ while (<>) {
 			shift @stack;
 		} else {
 			$score += $scores{$_};
-			last;
+			next LINE;
 		}
 	}
+	next unless @stack;
+	my $score2 = 0;
+	$score2 = $score2 * 5 + 1 + index(')]}>', $_) for @stack;
+	push @scores2, $score2;
 }
 print "$score\n";
+@scores2 = sort { $a <=> $b } @scores2;
+print $scores2[@scores2 / 2], "\n";