aboutsummaryrefslogtreecommitdiff
path: root/challenge-218/sgreen/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-218/sgreen/python/ch-2.py')
-rwxr-xr-xchallenge-218/sgreen/python/ch-2.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-218/sgreen/python/ch-2.py b/challenge-218/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..9ac2a65a8c
--- /dev/null
+++ b/challenge-218/sgreen/python/ch-2.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+
+import json
+import sys
+from operator import xor
+
+
+def main(matrix):
+ solution = 0
+ cols = len(matrix[0])
+ xor_row = 2 ** cols - 1
+
+ # Convert the matrix into a row of integers
+ matrix = [int(''.join(str(b) for b in x), 2) for x in matrix]
+
+ for col_xor in range(2 ** cols):
+ xor_matrix = [xor(x, col_xor) for x in matrix]
+ total = sum([max(xor_row - x, x) for x in xor_matrix])
+ if total > solution:
+ solution = total
+
+ print(solution)
+
+
+if __name__ == '__main__':
+ main(json.loads(sys.argv[1]))