diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-05-20 20:43:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-20 20:43:19 +0100 |
| commit | 006cdc758e6d8a0a8cd07b09eeb8d0b55f7fc797 (patch) | |
| tree | c62090977b6d8dd5430d31de40153c1203b80ea5 | |
| parent | 0fb8759b8a985c5b5900bf45200c2dddda4789fc (diff) | |
| parent | 251b0c15df5a38212b602987ca2d9d6b8acb4f1b (diff) | |
| download | perlweeklychallenge-club-006cdc758e6d8a0a8cd07b09eeb8d0b55f7fc797.tar.gz perlweeklychallenge-club-006cdc758e6d8a0a8cd07b09eeb8d0b55f7fc797.tar.bz2 perlweeklychallenge-club-006cdc758e6d8a0a8cd07b09eeb8d0b55f7fc797.zip | |
Merge pull request #8107 from arnesom/branch-for-challenge-217
Arne Sommer
| -rw-r--r-- | challenge-217/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/ch-1.raku | 16 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/ch-2.raku | 11 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/max-number | 11 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/max-number-arm | 13 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/max-number-leg | 5 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/sorted-matrix | 16 | ||||
| -rwxr-xr-x | challenge-217/arne-sommer/raku/sorted-matrix-cheat | 5 |
8 files changed, 78 insertions, 0 deletions
diff --git a/challenge-217/arne-sommer/blog.txt b/challenge-217/arne-sommer/blog.txt new file mode 100644 index 0000000000..12c692a5c1 --- /dev/null +++ b/challenge-217/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/ma-tri-x.html diff --git a/challenge-217/arne-sommer/raku/ch-1.raku b/challenge-217/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..f8fd5aea49 --- /dev/null +++ b/challenge-217/arne-sommer/raku/ch-1.raku @@ -0,0 +1,16 @@ +#! /usr/bin/env raku + +unit sub MAIN (Str $matrix = "3 1 2 | 5 2 4 | 0 1 3", :v(:$verbose)); + +my @matrix = $matrix.split("|")>>.words; +my @size = @matrix>>.elems; + +die "Must have at least 2 rows" unless @size.elems >= 2; +die "The rows must have the same size" unless [==] @size; +die "The number of columns and rows must be the same" unless @size[0] == @size.elems; + +my @sorted = @matrix[*;*].sort; + +say ":Sorted: { @sorted.join(",") }" if $verbose; + +say @sorted[2]; diff --git a/challenge-217/arne-sommer/raku/ch-2.raku b/challenge-217/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..d42b56e06a --- /dev/null +++ b/challenge-217/arne-sommer/raku/ch-2.raku @@ -0,0 +1,11 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/, :v(:$verbose)); + +my @permutations = @list.permutations; +my @values = @permutations>>.join; + +say ":Permutations: ", @permutations if $verbose; +say ":Values: ", @values if $verbose; + +say @values.max; diff --git a/challenge-217/arne-sommer/raku/max-number b/challenge-217/arne-sommer/raku/max-number new file mode 100755 index 0000000000..d42b56e06a --- /dev/null +++ b/challenge-217/arne-sommer/raku/max-number @@ -0,0 +1,11 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/, :v(:$verbose)); + +my @permutations = @list.permutations; +my @values = @permutations>>.join; + +say ":Permutations: ", @permutations if $verbose; +say ":Values: ", @values if $verbose; + +say @values.max; diff --git a/challenge-217/arne-sommer/raku/max-number-arm b/challenge-217/arne-sommer/raku/max-number-arm new file mode 100755 index 0000000000..8c95030c1c --- /dev/null +++ b/challenge-217/arne-sommer/raku/max-number-arm @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/); + +say @list.sort(&arm).join; + +sub arm ($a, $b) +{ + return False if $b.substr(0, $a.chars) eq $a && $b.substr($a.end +1,1) eq '0'; + return True if $a.substr(0, $b.chars) eq $b && $a.substr($b.end +1,1) eq '0'; + + return $b leg $a; +} diff --git a/challenge-217/arne-sommer/raku/max-number-leg b/challenge-217/arne-sommer/raku/max-number-leg new file mode 100755 index 0000000000..bc180f56e6 --- /dev/null +++ b/challenge-217/arne-sommer/raku/max-number-leg @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/); + +say @list.sort({ $^b leg $^a }).join; diff --git a/challenge-217/arne-sommer/raku/sorted-matrix b/challenge-217/arne-sommer/raku/sorted-matrix new file mode 100755 index 0000000000..f8fd5aea49 --- /dev/null +++ b/challenge-217/arne-sommer/raku/sorted-matrix @@ -0,0 +1,16 @@ +#! /usr/bin/env raku + +unit sub MAIN (Str $matrix = "3 1 2 | 5 2 4 | 0 1 3", :v(:$verbose)); + +my @matrix = $matrix.split("|")>>.words; +my @size = @matrix>>.elems; + +die "Must have at least 2 rows" unless @size.elems >= 2; +die "The rows must have the same size" unless [==] @size; +die "The number of columns and rows must be the same" unless @size[0] == @size.elems; + +my @sorted = @matrix[*;*].sort; + +say ":Sorted: { @sorted.join(",") }" if $verbose; + +say @sorted[2]; diff --git a/challenge-217/arne-sommer/raku/sorted-matrix-cheat b/challenge-217/arne-sommer/raku/sorted-matrix-cheat new file mode 100755 index 0000000000..c94bbff49f --- /dev/null +++ b/challenge-217/arne-sommer/raku/sorted-matrix-cheat @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (Str $matrix = "3 1 2 | 5 2 4 | 0 1 3"); + +say $matrix.words.grep( * !~~ /\|/ )>>.Int.sort[2]; |
