summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-12-06 10:42:57 -0500
committerJune McEnroe <june@causal.agency>2021-12-06 10:42:57 -0500
commit2145fe3dc17910991e5acbe1bdc8d1d8ec310e78 (patch)
tree270ada8595b2546afd948b707fa5768584c2db6a
parentSolve day 6 part 1 (diff)
downloadaoc-2145fe3dc17910991e5acbe1bdc8d1d8ec310e78.tar.gz
aoc-2145fe3dc17910991e5acbe1bdc8d1d8ec310e78.zip
Solve day 6 part 2
-rw-r--r--2021/day06.pl26
1 files changed, 21 insertions, 5 deletions
diff --git a/2021/day06.pl b/2021/day06.pl
index b296a4c..3fc7ac2 100644
--- a/2021/day06.pl
+++ b/2021/day06.pl
@@ -1,16 +1,32 @@
 use strict;
 use warnings;
-my @fish = split(/,/, <>);
+my @init = split(/,/, <>);
+my @fish = @init;
 for (1..80) {
 	my @spawns;
-	for my $f (@fish) {
-		if ($f) {
-			$f--;
+	for (@fish) {
+		if ($_) {
+			$_--;
 		} else {
-			$f = 6;
+			$_ = 6;
 			push @spawns, 8;
 		}
 	}
 	push @fish, @spawns;
 }
 print scalar(@fish), "\n";
+my %counts;
+for (@init) {
+	$counts{$_}++;
+}
+for (1..256) {
+	my $zeros = $counts{0} // 0;
+	for (0..7) {
+		$counts{$_} = $counts{$_+1};
+	}
+	$counts{8} = $zeros;
+	$counts{6} += $zeros;
+}
+my $sum = 0;
+$sum += $_ for values %counts;
+print "$sum\n";
2016-01-28Remove psql format wrappedJune McEnroe 2016-01-25Wow, that is so annoying, gitJune McEnroe 2016-01-25Clean up .gitconfigJune McEnroe 2016-01-15Remove gitignoreJune McEnroe 2016-01-15Eliminate escape key delay in zshJune McEnroe 2016-01-15Move pretty git log format to .gitconfigJune McEnroe 2016-01-14Remove unused git aliasesJune McEnroe 2016-01-06Hash SSH known hostsJune McEnroe 2015-12-30Ignore directory .swp filesJune McEnroe 2015-12-16Color prompt yellow in vi normal modeJune McEnroe 2015-11-23Remove colorcolumn at 120June McEnroe 2015-11-23Always git rebase --autosquashJune McEnroe 2015-11-18Add inverted shift to KarabinerJune McEnroe 2015-11-06Clean up git configsJune McEnroe 2015-11-06Add prune scriptJune McEnroe 2015-11-03Update vendored Gruvbox colorschemeJune McEnroe 2015-11-02Redefine _newline_precmd in _newline_precmdJune McEnroe 2015-11-02Print newline before every prompt after firstJune McEnroe 2015-11-02Remove first prompt placementJune McEnroe 2015-11-02Newline before prompt and start at bottom of terminalJune McEnroe 2015-10-27Add chruby to zshrcJune McEnroe