aboutsummaryrefslogtreecommitdiff
path: root/challenge-055/yet-ebreo/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-055/yet-ebreo/python/ch-2.py')
-rw-r--r--challenge-055/yet-ebreo/python/ch-2.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/challenge-055/yet-ebreo/python/ch-2.py b/challenge-055/yet-ebreo/python/ch-2.py
new file mode 100644
index 0000000000..8d40a6f06e
--- /dev/null
+++ b/challenge-055/yet-ebreo/python/ch-2.py
@@ -0,0 +1,71 @@
+from itertools import permutations
+import sys
+import time
+
+start_time = time.time()
+
+if len(sys.argv) < 2:
+ narray = [1, 2, 3, 4]
+else:
+ narray = list(map(int, sys.argv[1:]))
+
+narray.sort()
+dict = {}
+for elem in list(permutations(narray)):
+ flag = 1
+ for e in list(range(1, len(elem))):
+ flag &= (elem[e] >= elem[e-1], elem[e] <= elem[e-1])[e % 2 > 0]
+ if not flag:
+ break
+
+ if flag > 0:
+ hold = str(elem)
+ if (not hold in dict):
+ print (hold)
+ dict[hold] = 1
+
+print("Execution Time: %s seconds" % (time.time() - start_time))
+"""
+python .\ch-2.py
+(2, 1, 4, 3)
+(3, 1, 4, 2)
+(3, 2, 4, 1)
+(4, 1, 3, 2)
+(4, 2, 3, 1)
+Execution Time: 0.02042078971862793 seconds
+
+python .\ch-2.py 1 2 2 3 4
+(2, 1, 3, 2, 4)
+(2, 1, 4, 2, 3)
+(2, 2, 3, 1, 4)
+(2, 2, 4, 1, 3)
+(3, 1, 2, 2, 4)
+(3, 1, 4, 2, 2)
+(3, 2, 2, 1, 4)
+(3, 2, 4, 1, 2)
+(4, 1, 2, 2, 3)
+(4, 1, 3, 2, 2)
+(4, 2, 2, 1, 3)
+(4, 2, 3, 1, 2)
+Execution Time: 0.10867619514465332 seconds
+
+python .\ch-2.py 1 2 3 4 5 6 7 8 9
+...
+(9, 7, 8, 4, 6, 3, 5, 1, 2)
+(9, 7, 8, 5, 6, 1, 3, 2, 4)
+(9, 7, 8, 5, 6, 1, 4, 2, 3)
+(9, 7, 8, 5, 6, 2, 3, 1, 4)
+(9, 7, 8, 5, 6, 2, 4, 1, 3)
+(9, 7, 8, 5, 6, 3, 4, 1, 2)
+Execution Time: 14.091261386871338 seconds
+
+python .\ch-2.py 1 2 3 4 5 6 7 8 9 10
+...
+(10, 8, 9, 6, 7, 3, 4, 1, 5, 2)
+(10, 8, 9, 6, 7, 3, 4, 2, 5, 1)
+(10, 8, 9, 6, 7, 3, 5, 1, 4, 2)
+(10, 8, 9, 6, 7, 3, 5, 2, 4, 1)
+(10, 8, 9, 6, 7, 4, 5, 1, 3, 2)
+(10, 8, 9, 6, 7, 4, 5, 2, 3, 1)
+Execution Time: 145.47170519828796 seconds
+""" \ No newline at end of file