summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--2023/day04.pl16
1 files changed, 16 insertions, 0 deletions
diff --git a/2023/day04.pl b/2023/day04.pl
new file mode 100644
index 0000000..57b586c
--- /dev/null
+++ b/2023/day04.pl
@@ -0,0 +1,16 @@
+use strict;
+use warnings;
+my $points = 0;
+while (<>) {
+	chomp;
+	$_ =~ s/Card (\d+): //;
+	my ($winning, $mine) = split(/ [|] /);
+	my %winning = map {$_ => 1} split(/ +/, $winning);
+	my @mine = split(/ +/, $mine);
+	my $score = 0;
+	for (@mine) {
+		$score = ($score ? $score * 2 : 1) if exists $winning{$_};
+	}
+	$points += $score;
+}
+print $points, "\n";