aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-04-18 18:21:22 +0100
committerGitHub <noreply@github.com>2024-04-18 18:21:22 +0100
commit657b440dac20420a9eb0e7d44b7754d7ec5d0cb4 (patch)
tree8bcb97aadd60c36b71f748d61b7ca8d95bb8fb80
parent300be0f12485336ca2d4a8b6746958941213a467 (diff)
parent2e33e78114a603bed3b82714415c249997d63a32 (diff)
downloadperlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.tar.gz
perlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.tar.bz2
perlweeklychallenge-club-657b440dac20420a9eb0e7d44b7754d7ec5d0cb4.zip
Merge pull request #9953 from arnesom/branch-for-challenge-265
Arne Sommer
-rw-r--r--challenge-265/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-265/arne-sommer/raku/appearance19
-rwxr-xr-xchallenge-265/arne-sommer/raku/ch-1.raku19
-rwxr-xr-xchallenge-265/arne-sommer/raku/ch-2.raku19
-rwxr-xr-xchallenge-265/arne-sommer/raku/completing-word19
5 files changed, 77 insertions, 0 deletions
diff --git a/challenge-265/arne-sommer/blog.txt b/challenge-265/arne-sommer/blog.txt
new file mode 100644
index 0000000000..7f58064ec4
--- /dev/null
+++ b/challenge-265/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/33pct-word.html
diff --git a/challenge-265/arne-sommer/raku/appearance b/challenge-265/arne-sommer/raku/appearance
new file mode 100755
index 0000000000..f1861f4dc7
--- /dev/null
+++ b/challenge-265/arne-sommer/raku/appearance
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0, :v(:$verbose));
+
+my $limit = @ints.elems * 0.33;
+my %freq = @ints.Bag;
+my %ok = %freq.grep({ $_.value >= $limit });
+my @keys = %ok.keys.sort;
+
+if $verbose
+{
+ say ": Frequencies: { %freq.raku }";
+ say ": Limit: $limit";
+ say ": OK: { %ok.raku }";
+ say ": Sorted: { @keys.join(",") }";
+}
+
+say @keys.first;
+
diff --git a/challenge-265/arne-sommer/raku/ch-1.raku b/challenge-265/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..f1861f4dc7
--- /dev/null
+++ b/challenge-265/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0, :v(:$verbose));
+
+my $limit = @ints.elems * 0.33;
+my %freq = @ints.Bag;
+my %ok = %freq.grep({ $_.value >= $limit });
+my @keys = %ok.keys.sort;
+
+if $verbose
+{
+ say ": Frequencies: { %freq.raku }";
+ say ": Limit: $limit";
+ say ": OK: { %ok.raku }";
+ say ": Sorted: { @keys.join(",") }";
+}
+
+say @keys.first;
+
diff --git a/challenge-265/arne-sommer/raku/ch-2.raku b/challenge-265/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..51508f2f32
--- /dev/null
+++ b/challenge-265/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, *@str, :v(:$verbose));
+
+my $str-b = $str.comb.grep( * ~~ /<[a..z A..Z]>/)>>.lc.Bag;
+
+say ": Str Bag: { $str-b.raku }" if $verbose;
+
+for @str.sort: *.chars -> $candidate
+{
+ my $candidate-bag = $candidate.comb>>.lc.Bag;
+ say ": Checking $candidate (Bag: { $candidate-bag.raku })" if $verbose;
+
+ if $str-b (<=) $candidate-bag
+ {
+ say $candidate;
+ exit;
+ }
+}
diff --git a/challenge-265/arne-sommer/raku/completing-word b/challenge-265/arne-sommer/raku/completing-word
new file mode 100755
index 0000000000..51508f2f32
--- /dev/null
+++ b/challenge-265/arne-sommer/raku/completing-word
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, *@str, :v(:$verbose));
+
+my $str-b = $str.comb.grep( * ~~ /<[a..z A..Z]>/)>>.lc.Bag;
+
+say ": Str Bag: { $str-b.raku }" if $verbose;
+
+for @str.sort: *.chars -> $candidate
+{
+ my $candidate-bag = $candidate.comb>>.lc.Bag;
+ say ": Checking $candidate (Bag: { $candidate-bag.raku })" if $verbose;
+
+ if $str-b (<=) $candidate-bag
+ {
+ say $candidate;
+ exit;
+ }
+}