commit 6160d092340668718e1a0d2f6d43fee6086be5d5
parent ef09cc1d5d4c66b3f191bbf82fec1f9199be63ee
Author: mpizzzle <michael.770211@gmail.com>
Date: Sun, 10 Dec 2017 17:54:34 +0000
puzzle 10 complete
Diffstat:
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/puzzle10.py b/puzzle10.py
@@ -1,5 +1,8 @@
with open('files/puzzle10.txt') as f:
- puzzle_input = [int(c) for c in f.read().split(',')]
+ blep = f.read()
+ puzzle_input = [int(c) for c in blep.split(',')]
+ puzzle_ascii = [ord(c) for c in blep[:len(blep) - 1]]
+ puzzle_ascii.extend([17, 31, 73, 47, 23])
my_list = [i for i in range(256)]
skip, pos = 0, 0
@@ -12,3 +15,26 @@ for length in puzzle_input:
skip += 1
print my_list[0] * my_list[1]
+
+my_list = [i for i in range(256)]
+skip, pos = 0, 0
+
+for i in range(64):
+ for length in puzzle_ascii:
+ twist = reversed([my_list[i % len(my_list)] for i in range(pos, pos + length)])
+ for i, t in zip(range(pos, pos + length), twist):
+ my_list[i % len(my_list)] = t
+ pos += length + skip
+ skip += 1
+
+blocks = [my_list[i:i + 16] for i in range(0, len(my_list), 16)]
+
+knot_hash = []
+
+for block in blocks:
+ value = 0
+ for i in block:
+ value ^= i
+ knot_hash.append(chr(value))
+
+print "".join(knot_hash).encode("hex")