diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-09-07 22:48:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-07 22:48:51 +0100 |
| commit | ee4c5154fbcbc47ea9e792ad2251ab09b3c4fa8b (patch) | |
| tree | a708339935df50d4d21ada4ce86f94a23dfe4d3d | |
| parent | 8030d9cca65d98d8f3d68877660636586bfba864 (diff) | |
| parent | 1bdf6d26b7bdedd19ae43ce86fd2815c542a59fe (diff) | |
| download | perlweeklychallenge-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.lua | 19 | ||||
| -rw-r--r-- | challenge-337/hvukman/lua/337_p2.lua | 41 | ||||
| -rw-r--r-- | challenge-337/hvukman/racket/337_p1.rkt | 27 | ||||
| -rw-r--r-- | challenge-337/hvukman/racket/337_p2.rkt | 52 |
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) )) |
