aboutsummaryrefslogtreecommitdiff
path: root/challenge-204
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2023-02-14 08:03:38 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2023-02-14 08:03:38 +0000
commit6051a217ebf6f4804bf3015fc670971a489aecb0 (patch)
tree8bc53d3afbbaf85c73869423c339cef31b2e50b6 /challenge-204
parent986b633b77c54044dc1679939a79cdb8d3164a4d (diff)
downloadperlweeklychallenge-club-6051a217ebf6f4804bf3015fc670971a489aecb0.tar.gz
perlweeklychallenge-club-6051a217ebf6f4804bf3015fc670971a489aecb0.tar.bz2
perlweeklychallenge-club-6051a217ebf6f4804bf3015fc670971a489aecb0.zip
- Added solutions by Mark Anderson.
- Added solutions by Lubos Kolouch. - Added solutions by Luca Ferrari. - Added solutions by Andrew Shitov. - Added solutions by W. Luis Mochan. - Added solutions by Thomas Kohler. - Added solutions by Matthew Neleigh. - Added solutions by E. Choroba. - Added solutions by Carlos Oliveira. - Added solutions by Robbie Hatley.
Diffstat (limited to 'challenge-204')
-rw-r--r--challenge-204/ash/chatgpt/README (renamed from challenge-204/chatgpt/README)0
-rw-r--r--challenge-204/ash/chatgpt/blog-1.txt (renamed from challenge-204/chatgpt/blog-1.txt)0
-rw-r--r--challenge-204/ash/chatgpt/blog-2.txt (renamed from challenge-204/chatgpt/blog-2.txt)0
-rw-r--r--challenge-204/ash/chatgpt/raku/ch-1.raku (renamed from challenge-204/chatgpt/raku/ch-1.raku)0
-rw-r--r--challenge-204/ash/chatgpt/raku/ch-2.raku (renamed from challenge-204/chatgpt/raku/ch-2.raku)0
-rwxr-xr-xchallenge-204/eric-cheung/python/ch-1.py33
-rwxr-xr-xchallenge-204/eric-cheung/python/ch-2.py32
-rw-r--r--challenge-204/robert-dicicco/julia/ch-1.jl101
-rw-r--r--challenge-204/robert-dicicco/raku/ch-1.raku91
-rw-r--r--challenge-204/robert-dicicco/ruby/ch-1.rb79
10 files changed, 336 insertions, 0 deletions
diff --git a/challenge-204/chatgpt/README b/challenge-204/ash/chatgpt/README
index 7735e06a24..7735e06a24 100644
--- a/challenge-204/chatgpt/README
+++ b/challenge-204/ash/chatgpt/README
diff --git a/challenge-204/chatgpt/blog-1.txt b/challenge-204/ash/chatgpt/blog-1.txt
index 59e520d49a..59e520d49a 100644
--- a/challenge-204/chatgpt/blog-1.txt
+++ b/challenge-204/ash/chatgpt/blog-1.txt
diff --git a/challenge-204/chatgpt/blog-2.txt b/challenge-204/ash/chatgpt/blog-2.txt
index 8fabcdca67..8fabcdca67 100644
--- a/challenge-204/chatgpt/blog-2.txt
+++ b/challenge-204/ash/chatgpt/blog-2.txt
diff --git a/challenge-204/chatgpt/raku/ch-1.raku b/challenge-204/ash/chatgpt/raku/ch-1.raku
index cbc18bdd63..cbc18bdd63 100644
--- a/challenge-204/chatgpt/raku/ch-1.raku
+++ b/challenge-204/ash/chatgpt/raku/ch-1.raku
diff --git a/challenge-204/chatgpt/raku/ch-2.raku b/challenge-204/ash/chatgpt/raku/ch-2.raku
index 20375d1164..20375d1164 100644
--- a/challenge-204/chatgpt/raku/ch-2.raku
+++ b/challenge-204/ash/chatgpt/raku/ch-2.raku
diff --git a/challenge-204/eric-cheung/python/ch-1.py b/challenge-204/eric-cheung/python/ch-1.py
new file mode 100755
index 0000000000..e4399c7369
--- /dev/null
+++ b/challenge-204/eric-cheung/python/ch-1.py
@@ -0,0 +1,33 @@
+
+def IsMonotone(arrInput):
+
+ bConstantArr = True
+ bMontoneInc = False
+
+ for nLastIndx in range(1, len(arrInput)):
+ if arrInput[nLastIndx - 1] == arrInput[nLastIndx]:
+ continue
+
+ bConstantArr = False
+
+ if arrInput[nLastIndx - 1] < arrInput[nLastIndx]:
+ bMontoneInc = True
+ break
+
+ break
+
+ if bConstantArr:
+ return "1"
+
+ for nLoopIndx in range(nLastIndx + 1, len(arrInput)):
+ if bMontoneInc and arrInput[nLoopIndx - 1] > arrInput[nLoopIndx] or not bMontoneInc and arrInput[nLoopIndx - 1] < arrInput[nLoopIndx]:
+ return "0"
+
+ return "1"
+
+
+## nInputArr = [1, 2, 2, 3] ## Example 1
+## nInputArr = [1, 3, 2] ## Example 2
+nInputArr = [6, 5, 5, 4] ## Example 3
+
+print (IsMonotone(nInputArr))
diff --git a/challenge-204/eric-cheung/python/ch-2.py b/challenge-204/eric-cheung/python/ch-2.py
new file mode 100755
index 0000000000..5c6194a631
--- /dev/null
+++ b/challenge-204/eric-cheung/python/ch-2.py
@@ -0,0 +1,32 @@
+
+import numpy as np
+
+## Example 1
+## matrixInput = np.array([[1, 2], [3, 4]])
+## nMatrixReShapeRow = 1
+## nMatrixReShapeCol = 4
+
+## Example 2
+## matrixInput = np.array([[1, 2, 3], [4, 5, 6]])
+## nMatrixReShapeRow = 3
+## nMatrixReShapeCol = 2
+
+## Example 3
+matrixInput = np.array([1, 2])
+nMatrixReShapeRow = 3
+nMatrixReShapeCol = 2
+
+
+nMatrixRow = len(matrixInput)
+
+try:
+ nMatrixCol = len(matrixInput[0])
+except:
+ nMatrixCol = 0
+
+
+if nMatrixRow * nMatrixCol != nMatrixReShapeRow * nMatrixReShapeCol:
+ print ("0")
+else:
+ matrixOutput = matrixInput.reshape(nMatrixReShapeRow, nMatrixReShapeCol)
+ print (matrixOutput)
diff --git a/challenge-204/robert-dicicco/julia/ch-1.jl b/challenge-204/robert-dicicco/julia/ch-1.jl
new file mode 100644
index 0000000000..ff3d7727b9
--- /dev/null
+++ b/challenge-204/robert-dicicco/julia/ch-1.jl
@@ -0,0 +1,101 @@
+#!/usr/bin/env julia
+
+#=
+
+-----------------------------------------
+
+AUTHOR: Robert DiCicco
+
+DATE : 2023-02-13
+
+Challenge 204 Monotonic Array ( Julia )
+
+-----------------------------------------
+
+=#
+
+using Printf
+
+
+
+nums = [[1,2,2,3],[1,3,2],[6,5,5,4]]
+
+
+
+function CheckIncreasing(arr, ln)
+
+ cnt = 1
+
+ while cnt < ln
+
+ arr[cnt + 1] >= arr[cnt] ? (cnt += 1) : (return 0)
+
+ end
+
+ return 1
+
+end
+
+
+
+function CheckDecreasing(arr, ln)
+
+ cnt = 1
+
+ while cnt < ln
+
+ arr[cnt + 1] <= arr[cnt] ? (cnt += 1) : (return 0)
+
+ end
+
+ return 1
+
+end
+
+
+
+for n in nums
+
+ @printf("Input: @nums = %s\n", n)
+
+ len = length(n)
+
+ if (CheckIncreasing(n, len) == 0) && (CheckDecreasing(n,len) == 0)
+
+ println("0")
+
+ end
+
+ if (CheckIncreasing(n, len) == 1) || (CheckDecreasing(n,len) == 1)
+
+ println("1")
+
+ end
+
+end
+
+
+
+#=
+
+-----------------------------------------
+
+SAMPLE OUTPUY
+
+julia .\Monotones.jl
+
+Input: @nums = [1, 2, 2, 3]
+
+1
+
+Input: @nums = [1, 3, 2]
+
+0
+
+Input: @nums = [6, 5, 5, 4]
+
+1
+
+-----------------------------------------
+
+=#
diff --git a/challenge-204/robert-dicicco/raku/ch-1.raku b/challenge-204/robert-dicicco/raku/ch-1.raku
new file mode 100644
index 0000000000..ed98510134
--- /dev/null
+++ b/challenge-204/robert-dicicco/raku/ch-1.raku
@@ -0,0 +1,91 @@
+#!/usr/bin/env raku
+
+#`{
+
+-------------------------------------------------
+
+AUTHOR: Robert DiCicco
+
+DATE : 2023-02-13
+
+Challenge 204 Monotonic Array ( Raku )
+
+-------------------------------------------------
+
+}
+
+
+
+my @nums = <1 2 2 3>,<1 3 2>,<6 5 5 4>;
+
+
+
+sub CheckIncreasing (@arr, $len) {
+
+ my $cnt = 0;
+
+ while $cnt < $len - 1 {
+
+ @arr[$cnt + 1] >= @arr[$cnt] ?? $cnt++ !! return 0;
+
+ }
+
+ return 1;
+
+}
+
+
+
+sub CheckDecreasing (@arr, $len) {
+
+ my $cnt = 0;
+
+ while $cnt < $len - 1 {
+
+ @arr[$cnt + 1] <= @arr[$cnt] ?? $cnt++ !! return 0;
+
+ }
+
+ return 1;
+
+}
+
+
+
+for (@nums) -> @n {
+
+ print "Input: \@nums = (",@n,")\n";
+
+ my $len = @n.elems;
+
+ say "0" if CheckIncreasing(@n,$len) == 0 and CheckDecreasing(@n,$len) == 0 ;
+
+ say "1" if CheckIncreasing(@n,$len) == 1 or CheckDecreasing(@n,$len) == 1 ;
+
+}
+
+
+
+#`{
+
+-------------------------------------------------
+
+SAMPLE OUTPUT
+
+raku .\Monotones.rk
+
+Input: @nums = (1 2 2 3)
+
+1
+
+Input: @nums = (1 3 2)
+
+0
+
+Input: @nums = (6 5 5 4)
+
+1
+
+-------------------------------------------------
+
+}
diff --git a/challenge-204/robert-dicicco/ruby/ch-1.rb b/challenge-204/robert-dicicco/ruby/ch-1.rb
new file mode 100644
index 0000000000..5754ba0776
--- /dev/null
+++ b/challenge-204/robert-dicicco/ruby/ch-1.rb
@@ -0,0 +1,79 @@
+#!/usr/bin/env ruby
+
+=begin
+
+AUTHOR: Robert DiCicco
+
+DATE : 2023-02-13
+
+Challenge 204 Monotonic Array ( Raku )
+
+=end
+
+
+
+nums = [[1,2,2,3],[1,3,2],[6,5,5,4]]
+
+
+
+def CheckIncreasing(arr,ln)
+
+ cnt = 0
+
+ while cnt < ln - 1
+
+ arr[cnt + 1] >= arr[cnt] ? (cnt += 1) : (return 0)
+
+ end
+
+ return 1
+
+end
+
+ def CheckDecreasing(arr,ln)
+
+ cnt = 0
+
+ while cnt < ln - 1
+
+ arr[cnt + 1] <= arr[cnt] ? (cnt += 1) : (return 0)
+
+ end
+
+ return 1
+
+end
+
+
+
+nums.each do |n|
+
+ print("Input: \@nums = #{n}\n")
+
+ len = n.length
+
+ puts("0") if (CheckIncreasing(n,len) == 0) && (CheckDecreasing(n,len) == 0)
+
+ puts("1") if (CheckIncreasing(n,len) == 1) || (CheckDecreasing(n,len) == 1)
+
+end
+
+
+
+=begin
+
+ruby .\Monotones.rb
+
+Input: @nums = [1, 2, 2, 3]
+
+1
+
+Input: @nums = [1, 3, 2]
+
+0
+
+Input: @nums = [6, 5, 5, 4]
+
+1
+
+=end