aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-276/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-276/arne-sommer/raku/ch-1.raku20
-rwxr-xr-xchallenge-276/arne-sommer/raku/ch-2.raku12
-rwxr-xr-xchallenge-276/arne-sommer/raku/complete-day20
-rwxr-xr-xchallenge-276/arne-sommer/raku/maximum-frequency12
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;