aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-06-12 00:52:23 +0100
committerGitHub <noreply@github.com>2025-06-12 00:52:23 +0100
commita65f6334496adf75b288210984f809941a3eea8f (patch)
tree27145e7d70276a674fc3cdf991d7238187e756c2
parent38b214c5d2eee86db7573b3a783e90b45d52a769 (diff)
parent634c23f2a6f68b9ced2e12368504fae3b1824c5e (diff)
downloadperlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.tar.gz
perlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.tar.bz2
perlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.zip
Merge pull request #12167 from arnesom/branch-for-challenge-325
Arne Sommer
-rw-r--r--challenge-325/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-325/arne-sommer/raku/ch-1.raku12
-rwxr-xr-xchallenge-325/arne-sommer/raku/ch-2.raku29
-rwxr-xr-xchallenge-325/arne-sommer/raku/consecutive-one12
-rwxr-xr-xchallenge-325/arne-sommer/raku/final-price29
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-325/arne-sommer/blog.txt b/challenge-325/arne-sommer/blog.txt
new file mode 100644
index 0000000000..6949433b16
--- /dev/null
+++ b/challenge-325/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/one-final.html
diff --git a/challenge-325/arne-sommer/raku/ch-1.raku b/challenge-325/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..85386e0d33
--- /dev/null
+++ b/challenge-325/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#! /usr/bin/env raku
+
+subset BinaryDigit of Int where * eq any(0,1);
+
+unit sub MAIN (*@binary where @binary.elems >= 1 && all(@binary) ~~ BinaryDigit,
+ :v(:$verbose));
+
+my @ones = @binary.join.split(/0+/);
+
+say ": One strings: { @ones.join(",") }" if $verbose;
+
+say @ones.max.chars; \ No newline at end of file
diff --git a/challenge-325/arne-sommer/raku/ch-2.raku b/challenge-325/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..ccc1de3e9e
--- /dev/null
+++ b/challenge-325/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,29 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@prices where @prices.elems >= 1 && all(@prices) ~~ UInt,
+ :v(:$verbose));
+
+my @final;
+
+for ^@prices.elems -> $i
+{
+ my $price = @prices[$i];
+ my $lower = @prices[$i+1 .. Inf].grep(* <= $price).first;
+
+ if defined $lower
+ {
+ my $new = $price - $lower;
+
+ say ": Price: $price - lower $lower = $new" if $verbose;
+
+ @final.push: $new;
+ }
+ else
+ {
+ say ": Price: $price -> no lower = $price" if $verbose;
+
+ @final.push: $price;
+ }
+}
+
+say @final; \ No newline at end of file
diff --git a/challenge-325/arne-sommer/raku/consecutive-one b/challenge-325/arne-sommer/raku/consecutive-one
new file mode 100755
index 0000000000..85386e0d33
--- /dev/null
+++ b/challenge-325/arne-sommer/raku/consecutive-one
@@ -0,0 +1,12 @@
+#! /usr/bin/env raku
+
+subset BinaryDigit of Int where * eq any(0,1);
+
+unit sub MAIN (*@binary where @binary.elems >= 1 && all(@binary) ~~ BinaryDigit,
+ :v(:$verbose));
+
+my @ones = @binary.join.split(/0+/);
+
+say ": One strings: { @ones.join(",") }" if $verbose;
+
+say @ones.max.chars; \ No newline at end of file
diff --git a/challenge-325/arne-sommer/raku/final-price b/challenge-325/arne-sommer/raku/final-price
new file mode 100755
index 0000000000..ccc1de3e9e
--- /dev/null
+++ b/challenge-325/arne-sommer/raku/final-price
@@ -0,0 +1,29 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@prices where @prices.elems >= 1 && all(@prices) ~~ UInt,
+ :v(:$verbose));
+
+my @final;
+
+for ^@prices.elems -> $i
+{
+ my $price = @prices[$i];
+ my $lower = @prices[$i+1 .. Inf].grep(* <= $price).first;
+
+ if defined $lower
+ {
+ my $new = $price - $lower;
+
+ say ": Price: $price - lower $lower = $new" if $verbose;
+
+ @final.push: $new;
+ }
+ else
+ {
+ say ": Price: $price -> no lower = $price" if $verbose;
+
+ @final.push: $price;
+ }
+}
+
+say @final; \ No newline at end of file