diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-25 22:40:56 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-25 22:40:56 +0000 |
| commit | 5699e3962a61cf46e8538dfd28f5ffcb4a6dc995 (patch) | |
| tree | 2b61e9cc99b567f8d1335b3dc34ddcc5870fb272 | |
| parent | ce38ff4e66f823e21bbab0c4fe04522d745e1d55 (diff) | |
| parent | a0fe8f2b20b9f1704c413b31cd0b89188ab9f434 (diff) | |
| download | perlweeklychallenge-club-5699e3962a61cf46e8538dfd28f5ffcb4a6dc995.tar.gz perlweeklychallenge-club-5699e3962a61cf46e8538dfd28f5ffcb4a6dc995.tar.bz2 perlweeklychallenge-club-5699e3962a61cf46e8538dfd28f5ffcb4a6dc995.zip | |
Merge pull request #9133 from arnesom/branch-for-challenge-244
Arne Sommer
| -rwxr-xr-x | challenge-244/arne-sommer/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/ch-2.raku | 20 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller | 18 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller-oneliner | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/count-smaller-oneliner-my | 5 | ||||
| -rwxr-xr-x | challenge-244/arne-sommer/raku/group-hero | 20 |
6 files changed, 73 insertions, 0 deletions
diff --git a/challenge-244/arne-sommer/raku/ch-1.raku b/challenge-244/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..ad0dfa5f49 --- /dev/null +++ b/challenge-244/arne-sommer/raku/ch-1.raku @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ @int.grep( * < $_ ).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/ch-2.raku b/challenge-244/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..168d451fb7 --- /dev/null +++ b/challenge-244/arne-sommer/raku/ch-2.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@nums where @nums.elems > 0 && all(@nums) ~~ Int, + :v(:$verbose)); + +my $group = 0; +my $total = 0; + +for @nums.combinations(1..Inf) -> @candidate +{ + my $max = @candidate.max; + my $min = @candidate.min; + my $sum = $max ** 2 * $min; + + $total += $sum; + + say ": Group { ++$group }: ({ @candidate.join(",") }) => square(max({ @candidate.join(",") })) * min({ @candidate.join(",") }) => { $max ** 2 } * $min => $sum" if $verbose; +} + +say $total;
\ No newline at end of file diff --git a/challenge-244/arne-sommer/raku/count-smaller b/challenge-244/arne-sommer/raku/count-smaller new file mode 100755 index 0000000000..4cde12dc92 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller @@ -0,0 +1,18 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int, + :v(:$verbose)); + +my $index = 0; +my @output; + +for @int -> $int +{ + my $count = @int.grep( * < $int).elems; + + say ": For index = { $index++ }, count of elements less $int is $count." if $verbose; + + @output.push: $count; +} + +say "(" ~ @output.join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/count-smaller-oneliner b/challenge-244/arne-sommer/raku/count-smaller-oneliner new file mode 100755 index 0000000000..ad0dfa5f49 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller-oneliner @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ @int.grep( * < $_ ).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/count-smaller-oneliner-my b/challenge-244/arne-sommer/raku/count-smaller-oneliner-my new file mode 100755 index 0000000000..eacdc0c1e1 --- /dev/null +++ b/challenge-244/arne-sommer/raku/count-smaller-oneliner-my @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@int where @int.elems > 0 && all(@int) ~~ Int); + +say "(" ~ @int.map({ my $map = $_; @int.grep({ $_ < $map }).elems }).join(", ") ~ ")"; diff --git a/challenge-244/arne-sommer/raku/group-hero b/challenge-244/arne-sommer/raku/group-hero new file mode 100755 index 0000000000..168d451fb7 --- /dev/null +++ b/challenge-244/arne-sommer/raku/group-hero @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@nums where @nums.elems > 0 && all(@nums) ~~ Int, + :v(:$verbose)); + +my $group = 0; +my $total = 0; + +for @nums.combinations(1..Inf) -> @candidate +{ + my $max = @candidate.max; + my $min = @candidate.min; + my $sum = $max ** 2 * $min; + + $total += $sum; + + say ": Group { ++$group }: ({ @candidate.join(",") }) => square(max({ @candidate.join(",") })) * min({ @candidate.join(",") }) => { $max ** 2 } * $min => $sum" if $verbose; +} + +say $total;
\ No newline at end of file |
