aboutsummaryrefslogtreecommitdiff
path: root/challenge-242/packy-anderson/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-242/packy-anderson/python')
-rwxr-xr-xchallenge-242/packy-anderson/python/ch-1.py53
-rwxr-xr-xchallenge-242/packy-anderson/python/ch-2.py28
2 files changed, 81 insertions, 0 deletions
diff --git a/challenge-242/packy-anderson/python/ch-1.py b/challenge-242/packy-anderson/python/ch-1.py
new file mode 100755
index 0000000000..8126d38ebf
--- /dev/null
+++ b/challenge-242/packy-anderson/python/ch-1.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+def comma_join(arr):
+ return ', '.join(map(lambda i: str(i), arr))
+
+def findMissing(source, target, output, explanation):
+ # convert the target into a map with each element as keys
+ targetMap = { x: 1 for x in target }
+
+ # see which elements in the source are not in the target
+ missing = []
+ for elem in source:
+ if not elem in targetMap:
+ missing.append(elem)
+
+ # format output explaining what we found
+ explanation += "\n(" + comma_join(source) + ") has "
+ explanation += str(len(missing))
+ explanation += ' member ' if len(missing) == 1 \
+ else ' members '
+ if (len(missing) > 0):
+ explanation += '(' + comma_join(missing) + ') '
+ output.append(set(missing))
+ explanation += 'missing from the array '
+ explanation += '(' + comma_join(target) + ')'
+ return explanation
+
+
+def findSolution(arr1, arr2, output):
+ explanation = ''
+ explanation = findMissing(arr1, arr2, output, explanation)
+ explanation = findMissing(arr2, arr1, output, explanation)
+ return explanation
+
+
+def solution(arr1, arr2):
+ print(f'Input: @arr1 = ({comma_join(arr1)})')
+ print(f' @arr2 = ({comma_join(arr2)})')
+
+ output = []
+ explanation = findSolution(arr1, arr2, output)
+ formatted_subarray = []
+ for subarray in output:
+ formatted_subarray.append('[' + comma_join(subarray) + ']')
+ print(f'Output: ({comma_join(formatted_subarray)})')
+ print(explanation)
+
+
+print('Example 1:')
+solution([1, 2, 3], [2, 4, 6])
+
+print('\nExample 2:')
+solution([1, 2, 3, 3], [1, 1, 2, 2]) \ No newline at end of file
diff --git a/challenge-242/packy-anderson/python/ch-2.py b/challenge-242/packy-anderson/python/ch-2.py
new file mode 100755
index 0000000000..dd5dc075ab
--- /dev/null
+++ b/challenge-242/packy-anderson/python/ch-2.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+def flipMatrix(matrix):
+ for index in range(0, len(matrix)):
+ matrix[index] = map(
+ lambda i: abs(i - 1), reversed(matrix[index])
+ )
+ return matrix
+
+def comma_join(arr):
+ return ', '.join(map(lambda i: str(i), arr))
+
+def formatArray(matrix):
+ formatted = []
+ for subarray in matrix:
+ formatted.append('[' + comma_join(subarray) + ']')
+ return '(' + comma_join(formatted) + ')'
+
+def solution(matrix):
+ print(f'Input: @matrix = {formatArray(matrix)}')
+ output = flipMatrix(matrix)
+ print(f'Output: {formatArray(output)}')
+
+print('Example 1:')
+solution([[1, 1, 0], [1, 0, 1], [0, 0, 0]])
+
+print('\nExample 2:')
+solution([[1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]]) \ No newline at end of file