From 86071ef703bd3e3cd55a4ca93668d157d1941363 Mon Sep 17 00:00:00 2001
From: Thomas Voss <mail@thomasvoss.com>
Date: Mon, 5 Dec 2022 21:29:43 +0100
Subject: Add 2016 day 4 solutions

---
 2016/04/puzzle-2.sh | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100755 2016/04/puzzle-2.sh

(limited to '2016/04/puzzle-2.sh')

diff --git a/2016/04/puzzle-2.sh b/2016/04/puzzle-2.sh
new file mode 100755
index 0000000..3e2c333
--- /dev/null
+++ b/2016/04/puzzle-2.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# This is slow, but it’s fun!  That’s what counts!
+
+while IFS='[]' read -r line cksum; do
+	sid=`echo $line | grep -o '[0-9]*'`
+	echo $line \
+		| tr -d -- '-0-9\n' \
+		| sed 's/./&\n/g'   \
+		| sort              \
+		| uniq -c           \
+		| sort -k1nr        \
+		| head -n5          \
+		| awk "{ s = s \$2 } END { if (s == \"$cksum\") print \"$line\" }"
+done <input | \
+	while read -r line; do
+		for i in `seq 25`; do
+			echo $line | tr $(printf %${i}s | tr ' ' '.')\a-z a-za-z
+		done
+		# The call to head(1) allows us to exit the moment we find the
+		# first match.
+	done | grep north | grep -o '[0-9]*' | head -n1
+# END PART 2
-- 
cgit v1.2.3