aboutsummaryrefslogtreecommitdiff
path: root/challenge-196/sgreen/python
diff options
context:
space:
mode:
authorSimon Green <mail@simon.green>2022-12-24 16:14:46 +1100
committerSimon Green <mail@simon.green>2022-12-24 16:14:46 +1100
commit1c0933f0c2594679a6396cd86c5455b81d455ac7 (patch)
treea6e6d9fafa68fcf3dde591aa8e76e2e291fd85d6 /challenge-196/sgreen/python
parente2ca6572844d7b98a7c374ac74d87992a0dd6862 (diff)
downloadperlweeklychallenge-club-1c0933f0c2594679a6396cd86c5455b81d455ac7.tar.gz
perlweeklychallenge-club-1c0933f0c2594679a6396cd86c5455b81d455ac7.tar.bz2
perlweeklychallenge-club-1c0933f0c2594679a6396cd86c5455b81d455ac7.zip
Simon's solution to challenge 196
Diffstat (limited to 'challenge-196/sgreen/python')
-rwxr-xr-xchallenge-196/sgreen/python/ch-1.py20
-rwxr-xr-xchallenge-196/sgreen/python/ch-2.py31
2 files changed, 51 insertions, 0 deletions
diff --git a/challenge-196/sgreen/python/ch-1.py b/challenge-196/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..57b37a70da
--- /dev/null
+++ b/challenge-196/sgreen/python/ch-1.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+from itertools import combinations
+import sys
+
+def main(n):
+ # Work through all combinations of positions
+ for x in combinations(range(len(n)), 3):
+ i, j, k = sorted(x)
+ if n[i] < n[k] < n[j]:
+ print(f'({n[i]}, {n[j]}, {n[k]})')
+ return
+
+ # No solution is found
+ print('()')
+
+if __name__ == '__main__':
+ # Turn the strings into integers
+ n = [int(i) for i in sys.argv[1:]]
+ main(n)
diff --git a/challenge-196/sgreen/python/ch-2.py b/challenge-196/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..ce0f95cd62
--- /dev/null
+++ b/challenge-196/sgreen/python/ch-2.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+
+import sys
+
+
+def main(n):
+ solutions = []
+
+ # Go through the list until it is exhausted
+ while len(n):
+ start = end = n.pop(0)
+
+ # See if the next number is one more than the last value
+ while len(n) > 0 and n[0] == end+1:
+ end = n.pop(0)
+
+ # We have found a range
+ if start != end:
+ solutions.append(f'[{start},{end}]')
+
+ # Print solution
+ if solutions:
+ print(*solutions, sep=', ')
+ else:
+ print('No solutions found!')
+
+
+if __name__ == '__main__':
+ # Turn the strings into integers
+ n = [int(i) for i in sys.argv[1:]]
+ main(n)