diff options
| -rw-r--r-- | challenge-276/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-276/arne-sommer/raku/ch-1.raku | 20 | ||||
| -rwxr-xr-x | challenge-276/arne-sommer/raku/ch-2.raku | 12 | ||||
| -rwxr-xr-x | challenge-276/arne-sommer/raku/complete-day | 20 | ||||
| -rwxr-xr-x | challenge-276/arne-sommer/raku/maximum-frequency | 12 |
5 files changed, 65 insertions, 0 deletions
diff --git a/challenge-276/arne-sommer/blog.txt b/challenge-276/arne-sommer/blog.txt new file mode 100644 index 0000000000..ef8c6c9418 --- /dev/null +++ b/challenge-276/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/complete-maximum.html diff --git a/challenge-276/arne-sommer/raku/ch-1.raku b/challenge-276/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..434236044a --- /dev/null +++ b/challenge-276/arne-sommer/raku/ch-1.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@hours where all(@hours) ~~ UInt && @hours.elems > 1, + :v(:$verbose)); + +my $pairs = 0; + +for @hours.combinations(2) -> ($first, $second) +{ + next if $first == $second == 0; + + if ($first + $second) %% 24 + { + $pairs++; + + say ": Pair $pairs: ($first, $second)" if $verbose; + } +} + +say $pairs; diff --git a/challenge-276/arne-sommer/raku/ch-2.raku b/challenge-276/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..48749762a9 --- /dev/null +++ b/challenge-276/arne-sommer/raku/ch-2.raku @@ -0,0 +1,12 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && all(@ints) > 0 && @ints.elems > 0, + :v(:$verbose)); + +my $bag = @ints.Bag; + +my $max-freq = $bag.values.max; + +say ": The maximum frequency is $max-freq" if $verbose; + +say $bag.grep( *.value == $max-freq ) * $max-freq; diff --git a/challenge-276/arne-sommer/raku/complete-day b/challenge-276/arne-sommer/raku/complete-day new file mode 100755 index 0000000000..434236044a --- /dev/null +++ b/challenge-276/arne-sommer/raku/complete-day @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@hours where all(@hours) ~~ UInt && @hours.elems > 1, + :v(:$verbose)); + +my $pairs = 0; + +for @hours.combinations(2) -> ($first, $second) +{ + next if $first == $second == 0; + + if ($first + $second) %% 24 + { + $pairs++; + + say ": Pair $pairs: ($first, $second)" if $verbose; + } +} + +say $pairs; diff --git a/challenge-276/arne-sommer/raku/maximum-frequency b/challenge-276/arne-sommer/raku/maximum-frequency new file mode 100755 index 0000000000..48749762a9 --- /dev/null +++ b/challenge-276/arne-sommer/raku/maximum-frequency @@ -0,0 +1,12 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where all(@ints) ~~ Int && all(@ints) > 0 && @ints.elems > 0, + :v(:$verbose)); + +my $bag = @ints.Bag; + +my $max-freq = $bag.values.max; + +say ": The maximum frequency is $max-freq" if $verbose; + +say $bag.grep( *.value == $max-freq ) * $max-freq; |
