aboutsummaryrefslogtreecommitdiff
path: root/challenge-235/deadmarshal/ruby
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2023-09-20 16:15:49 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2023-09-20 16:15:49 +0330
commit8701808a4ca1e652ba6a38eb5914d1ca6341cbf1 (patch)
tree1e65a5733be4fad5f9793ba12a6c1624281bcf88 /challenge-235/deadmarshal/ruby
parentaee701524950403dce06a2a835452b79eacabce1 (diff)
downloadperlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.gz
perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.bz2
perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.zip
TWC235
Diffstat (limited to 'challenge-235/deadmarshal/ruby')
-rw-r--r--challenge-235/deadmarshal/ruby/ch1.rb25
-rw-r--r--challenge-235/deadmarshal/ruby/ch2.rb15
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-235/deadmarshal/ruby/ch1.rb b/challenge-235/deadmarshal/ruby/ch1.rb
new file mode 100644
index 0000000000..0fa090b488
--- /dev/null
+++ b/challenge-235/deadmarshal/ruby/ch1.rb
@@ -0,0 +1,25 @@
+#!/usr/bin/env ruby
+
+def remove_one(arr)
+ c1,c2,idx1,idx2 = 0,0,-1,-1
+ (1..arr.length()-1).each do |i|
+ if arr[i] <= arr[i-1]
+ c1 += 1
+ idx1 = i-1
+ end
+ end
+ (1..arr.length()-2).to_a.reverse.each do |i|
+ if arr[i] <= arr[i-1]
+ c2 += 1
+ idx1 = i+1
+ end
+ end
+ return true if c1 == 1 && c2 == 1 && idx2 - idx1 + 1 == 2
+ return false if c1 > 1 || c2 > 1
+ return true
+end
+
+p remove_one([0,2,9,4,5])
+p remove_one([5,1,3,2])
+p remove_one([2,2,3])
+
diff --git a/challenge-235/deadmarshal/ruby/ch2.rb b/challenge-235/deadmarshal/ruby/ch2.rb
new file mode 100644
index 0000000000..6d067b5a89
--- /dev/null
+++ b/challenge-235/deadmarshal/ruby/ch2.rb
@@ -0,0 +1,15 @@
+#!/usr/bin/env ruby
+
+def duplicate_zeros(arr)
+ ret = []
+ for e in arr
+ break if ret.length() == arr.length()
+ e == 0 ? ret.push(0,0) : ret.push(e)
+ end
+ ret
+end
+
+p duplicate_zeros([1,0,2,3,0,4,5,0])
+p duplicate_zeros([1,2,3])
+p duplicate_zeros([0,3,0,4,5])
+