From a0fe8f2b20b9f1704c413b31cd0b89188ab9f434 Mon Sep 17 00:00:00 2001 From: arnesom Date: Sat, 25 Nov 2023 23:20:53 +0100 Subject: Arne Sommer --- challenge-244/arne-sommer/raku/ch-1.raku | 5 +++++ challenge-244/arne-sommer/raku/ch-2.raku | 20 ++++++++++++++++++++ challenge-244/arne-sommer/raku/count-smaller | 18 ++++++++++++++++++ .../arne-sommer/raku/count-smaller-oneliner | 5 +++++ .../arne-sommer/raku/count-smaller-oneliner-my | 5 +++++ challenge-244/arne-sommer/raku/group-hero | 20 ++++++++++++++++++++ 6 files changed, 73 insertions(+) create mode 100755 challenge-244/arne-sommer/raku/ch-1.raku create mode 100755 challenge-244/arne-sommer/raku/ch-2.raku create mode 100755 challenge-244/arne-sommer/raku/count-smaller create mode 100755 challenge-244/arne-sommer/raku/count-smaller-oneliner create mode 100755 challenge-244/arne-sommer/raku/count-smaller-oneliner-my create mode 100755 challenge-244/arne-sommer/raku/group-hero 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 -- cgit