aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-01-15 21:48:14 +0000
committerGitHub <noreply@github.com>2023-01-15 21:48:14 +0000
commitdf1de5c9a9698ec526cfd0b0d14e35a0c09ca70b (patch)
tree83f90be3de485137d4648bbcd27dbbb1e7144485
parent590ef398889618c72925983871357130f096e919 (diff)
parentb756177a9b501f7b9397704b10b3f09a9402e6db (diff)
downloadperlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.tar.gz
perlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.tar.bz2
perlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.zip
Merge pull request #7414 from wambash/challenge-week-199
solutions week 199
-rw-r--r--challenge-199/wambash/raku/ch-1.raku20
-rw-r--r--challenge-199/wambash/raku/ch-2.raku29
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-199/wambash/raku/ch-1.raku b/challenge-199/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..3e27216f66
--- /dev/null
+++ b/challenge-199/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub good-pairs (+@list) {
+ @list
+ andthen $_, *.repeated ^...^ :!elems
+ andthen .map: *.elems
+ andthen .sum
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is good-pairs(1,2,3,1,1,3),4;
+ is good-pairs(1,2,3),0;
+ is good-pairs(1,1,1,1),6;
+ done-testing;
+}
+
+multi MAIN (*@list) {
+ say good-pairs @list
+}
diff --git a/challenge-199/wambash/raku/ch-2.raku b/challenge-199/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..775a065212
--- /dev/null
+++ b/challenge-199/wambash/raku/ch-2.raku
@@ -0,0 +1,29 @@
+#!/usr/bin/env raku
+use v6.e.PREVIEW;
+
+sub good-triplet (+@ ($a,$b,$c),:$x!,:$y!,:$z!) {
+ True
+ && -$x ≤ $a - $b ≤ $x
+ && -$y ≤ $b - $c ≤ $y
+ && -$z ≤ $c - $a ≤ $z
+ andthen .so
+}
+
+sub good-triplets (+@list, :$x,:$y,:$z) {
+ @list
+ andthen .combinations(3)
+ andthen .grep: &good-triplet.assuming: :$x:$y:$z
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is good-triplet(3,0,1, :7x:2y:3z), True;
+ is good-triplets(3,0,1,1,9,7,:7x:2y:3z), 4;
+ is good-triplets(1,1,2,2,3, :0x:0y:1z), 0;
+ done-testing;
+}
+
+multi MAIN (*@list, :$x,:$y,:$z) {
+ say good-triplets @list, :$x,:$y,:$z
+}