aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-09-07 22:48:51 +0100
committerGitHub <noreply@github.com>2025-09-07 22:48:51 +0100
commitee4c5154fbcbc47ea9e792ad2251ab09b3c4fa8b (patch)
treea708339935df50d4d21ada4ce86f94a23dfe4d3d
parent8030d9cca65d98d8f3d68877660636586bfba864 (diff)
parent1bdf6d26b7bdedd19ae43ce86fd2815c542a59fe (diff)
downloadperlweeklychallenge-club-ee4c5154fbcbc47ea9e792ad2251ab09b3c4fa8b.tar.gz
perlweeklychallenge-club-ee4c5154fbcbc47ea9e792ad2251ab09b3c4fa8b.tar.bz2
perlweeklychallenge-club-ee4c5154fbcbc47ea9e792ad2251ab09b3c4fa8b.zip
Merge pull request #12635 from HVukman/branch-for-challenge-337
Branch for challenge 337
-rw-r--r--challenge-337/hvukman/lua/337_p1.lua19
-rw-r--r--challenge-337/hvukman/lua/337_p2.lua41
-rw-r--r--challenge-337/hvukman/racket/337_p1.rkt27
-rw-r--r--challenge-337/hvukman/racket/337_p2.rkt52
4 files changed, 139 insertions, 0 deletions
diff --git a/challenge-337/hvukman/lua/337_p1.lua b/challenge-337/hvukman/lua/337_p1.lua
new file mode 100644
index 0000000000..1277d8c1d8
--- /dev/null
+++ b/challenge-337/hvukman/lua/337_p1.lua
@@ -0,0 +1,19 @@
+local inputs = { {6, 5, 4, 8},{7,7,7,7},{5, 4, 3, 2, 1},
+ {-1, 0, 3, -2, 1},{0, 1, 1, 2, 0} }
+
+function Smaller(X)
+ for i,v in ipairs(X) do
+ local int = 0
+ for j,w in ipairs(X) do
+ if v>= w and i~=j then
+ int = int +1
+ end
+ end
+ io.write(int," ")
+ end
+ io.write("\n")
+end
+
+for i=1,#inputs do
+ Smaller(inputs[i])
+end
diff --git a/challenge-337/hvukman/lua/337_p2.lua b/challenge-337/hvukman/lua/337_p2.lua
new file mode 100644
index 0000000000..4a04e36647
--- /dev/null
+++ b/challenge-337/hvukman/lua/337_p2.lua
@@ -0,0 +1,41 @@
+function oddmatrix(row,col,locs)
+
+ local mat = {}
+ for i=1,row do
+ mat[i]={}
+ for j=1,col do
+ mat[i][j]=0
+ end
+ end
+
+ for i,v in ipairs(locs) do
+
+ -- apply to rows
+ for k=1,col do
+ mat[v[1]+1][k]=mat[v[1]+1][k]+1
+ end
+ -- apply to cols
+ for l=1,row do
+ mat[l][v[2]+1] = mat[l][v[2]+1]+1
+ end
+
+ end
+
+
+ local odds=0
+
+ for i=1,row do
+ for j=1,col do
+ if mat[i][j]%2~=0 then
+ odds = odds + 1
+ end
+ end
+ end
+ print("odds ", odds)
+end
+
+oddmatrix(2,3,{{0,1},{1,1}})
+oddmatrix(2,2,{{1,1},{0,0}})
+oddmatrix(3,3,{{0,0},{1,2},{2,1}})
+oddmatrix(1,5,{{0,2},{0,4}})
+oddmatrix(4,2,{{1,0},{3,1},{2,0},{0,1}})
diff --git a/challenge-337/hvukman/racket/337_p1.rkt b/challenge-337/hvukman/racket/337_p1.rkt
new file mode 100644
index 0000000000..b8578e1483
--- /dev/null
+++ b/challenge-337/hvukman/racket/337_p1.rkt
@@ -0,0 +1,27 @@
+#lang racket
+
+(require racket/file)
+(require srfi/1)
+(require rackunit)
+
+(define (remove-nth lst n)
+ (let loop ([i 0] [lst lst])
+ (cond [(= i n) (rest lst)]
+ [else (cons (first lst) (loop (add1 i) (rest lst)))])))
+
+(define (dummy x y) (filter (lambda (z) (>= x z)) y)
+ )
+
+(define (Smaller x)
+(for/list ( [i (iota (length x) )] )
+ (let ([y (list-ref x i)])
+ (length (dummy y (remove-nth x i)))
+ )
+ )
+ )
+
+(check-equal? '((2 1 0 3) (3 3 3 3) (4 3 2 1 0) (1 2 4 0 3) (1 3 3 4 1))
+ (map Smaller '( (6 5 4 8) (7 7 7 7) (5 4 3 2 1) (-1 0 3 -2 1) (0 1 1 2 0))))
+
+(map Smaller '( (6 5 4 8) (7 7 7 7) (5 4 3 2 1) (-1 0 3 -2 1) (0 1 1 2 0)))
+
diff --git a/challenge-337/hvukman/racket/337_p2.rkt b/challenge-337/hvukman/racket/337_p2.rkt
new file mode 100644
index 0000000000..2bc2e23fd0
--- /dev/null
+++ b/challenge-337/hvukman/racket/337_p2.rkt
@@ -0,0 +1,52 @@
+#lang racket
+(require racket/list)
+(require rackunit)
+
+; create list with row and columns
+(define (CreateMat row column)
+ (build-list row (lambda (x) (make-list column 0)))
+ )
+
+; increase row y
+(define (IncRow x y)
+ (list-set x y (map (lambda (z) (+ z 1) ) (list-ref x y)))
+ )
+
+; increase column y
+(define (IncCol x y)
+ (list-set x y (+ (list-ref x y) 1))
+ )
+
+; main function increases col and row
+(define (Odd z y)
+ (map (lambda (x) (IncCol x (cadr y))) (IncRow
+ z (car y)))
+
+)
+
+; if cdr Y not empty do the oddloop
+(define (Oddloop X Y)
+ (if (not (equal? Y '()))
+ (Oddloop (Odd X (car Y)) (cdr Y))
+ X
+ )
+ )
+
+; function for inputs
+(define (func X Y Z)
+(let ([row X] [col Y] [pos Z])
+ (apply + (map (lambda (x) (length x)) (map (lambda (x)
+ (filter odd? x)) (Oddloop (CreateMat row col) pos)))))
+)
+
+(check-equal? (func 2 3 '( (0 1) (1 1) )) 6)
+(check-equal? (func 2 2 '( (1 1) (0 0) )) 0)
+(check-equal? (func 3 3 '( (0 0) (1 2) (2 1) )) 0)
+(check-equal? (func 1 5 '( (0 2) (0 4) )) 2)
+(check-equal? (func 4 2 '( (1 0) (3 1) (2 0) (0 1) )) 8)
+
+(func 2 3 '( (0 1) (1 1) ))
+(func 2 2 '( (1 1) (0 0) ))
+(func 3 3 '( (0 0) (1 2) (2 1) ))
+(func 1 5 '( (0 2) (0 4) ))
+(func 4 2 '( (1 0) (3 1) (2 0) (0 1) ))