aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-08-30 18:19:26 +0100
committerGitHub <noreply@github.com>2025-08-30 18:19:26 +0100
commitf2f5a90a41b16370285090c137ce01fda49b6dad (patch)
treedd8ee81f04710efdda402c79fed9eff381dd3dca
parent0b3f96a1df9bd948d1a41d4708dfa64ced0d3fa3 (diff)
parent4074b6ee7df5f48b74944128b08dd871eda850d5 (diff)
downloadperlweeklychallenge-club-f2f5a90a41b16370285090c137ce01fda49b6dad.tar.gz
perlweeklychallenge-club-f2f5a90a41b16370285090c137ce01fda49b6dad.tar.bz2
perlweeklychallenge-club-f2f5a90a41b16370285090c137ce01fda49b6dad.zip
Merge pull request #12595 from HVukman/branch-for-challenge-336
Branch for challenge 336
-rw-r--r--challenge-336/hvukman/lua/336_p1.lua51
-rw-r--r--challenge-336/hvukman/lua/336_p2.lua36
2 files changed, 87 insertions, 0 deletions
diff --git a/challenge-336/hvukman/lua/336_p1.lua b/challenge-336/hvukman/lua/336_p1.lua
new file mode 100644
index 0000000000..76bc6ac291
--- /dev/null
+++ b/challenge-336/hvukman/lua/336_p1.lua
@@ -0,0 +1,51 @@
+
+function gcd(x, y)
+ if (y == 0) then
+ return x
+ else
+ return gcd(y, x%y)
+ end
+end
+
+function Equal_group(x)
+
+ local set ={}
+
+
+ for i,v in ipairs(x) do
+ set[v]=true
+ end
+ local res = {}
+ for i,v in pairs(set) do
+ -- print(i)
+ local res_=0
+ for _,w in ipairs(x) do
+ if i==w then
+ res_ =res_+ 1
+ end
+ end
+ table.insert(res,res_)
+ end
+
+
+ local dummy=0
+ local valid = true
+ for i=2,#res do
+ -- gcd for each pair
+ dummy= gcd(res[i-1],res[i])
+ --print (dummy)
+ -- if gcd<=1 then failure
+ if dummy <= 1 then
+ valid = false
+ end
+ if valid == false then break end
+ end
+
+ print(valid)
+end
+
+local inputs = { {1,1,2,2,2,2},{1,1,1,2,2,2,3,3}, {5,5,5,5,5,5,7,7,7,7,7,7},{1,2,3,4},{8,8,9,9,10,10,11,11} }
+
+for i=1,#inputs do
+ Equal_group(inputs[i])
+end
diff --git a/challenge-336/hvukman/lua/336_p2.lua b/challenge-336/hvukman/lua/336_p2.lua
new file mode 100644
index 0000000000..7943f876d7
--- /dev/null
+++ b/challenge-336/hvukman/lua/336_p2.lua
@@ -0,0 +1,36 @@
+local scores = {"5","-2","4","C","D","9","+","+"}
+
+function Final_score(x)
+ local score = 0
+ local prev = {}
+ local res = {}
+
+ for i=1,#x do
+ if (tonumber(x[i])) then
+ table.insert(prev,x[i])
+ table.insert(res,x[i])
+ elseif scores[i]=="C" then
+ table.remove(prev)
+ table.remove(res)
+ elseif scores[i]=="D" then -- double previous score
+ local last = prev[#prev]
+ table.insert(res,last*2)
+ table.insert(prev,last*2)
+ elseif scores[i]=="+" then -- add last two scores
+ local last = prev[#prev]
+ local last2 = prev[#prev-1]
+ table.insert(res,last+last2)
+ table.insert(prev,last+last2)
+ end
+ end
+
+
+ for _,v in ipairs(res) do
+ print(v)
+ score= score + v
+ end
+
+ print("score ", score)
+end
+
+Final_score(scores) \ No newline at end of file