aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-12-25 21:22:06 +0000
committerGitHub <noreply@github.com>2023-12-25 21:22:06 +0000
commit3669057e3de82bec9610e1c7d4d010135621bc50 (patch)
tree0dd72465bfeb2c0a4a868ed73a183ff0616aacbf
parent334ddbdc1e52305d6461c1d9621fcf6e20d463f3 (diff)
parent413aea80198685a15518411388b4ae622dad5cfb (diff)
downloadperlweeklychallenge-club-3669057e3de82bec9610e1c7d4d010135621bc50.tar.gz
perlweeklychallenge-club-3669057e3de82bec9610e1c7d4d010135621bc50.tar.bz2
perlweeklychallenge-club-3669057e3de82bec9610e1c7d4d010135621bc50.zip
Merge pull request #9290 from andemark/challenge-249
Challenge 249
-rw-r--r--challenge-249/mark-anderson/raku/ch-1.raku12
-rw-r--r--challenge-249/mark-anderson/raku/ch-2.raku22
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-249/mark-anderson/raku/ch-1.raku b/challenge-249/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..8adcd9f766
--- /dev/null
+++ b/challenge-249/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply equal-pairs(3,2,3,2,2,2), ((2,2),(2,2),(3,3));
+is-deeply equal-pairs(1,2,3,4), ();
+
+sub equal-pairs(+@a where * %% 2)
+{
+ my $b = @a.Bag;
+ return () unless all($b.values) %% 2;
+ $b.kxxv.batch(2).sort
+}
diff --git a/challenge-249/mark-anderson/raku/ch-2.raku b/challenge-249/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..c1d73452a2
--- /dev/null
+++ b/challenge-249/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply DI("IDID"), (0,4,1,3,2);
+is-deeply DI("III"), (0,1,2,3);
+is-deeply DI("DDI"), (3,2,0,1);
+is-deeply DI("DDID"), (4,3,0,2,1);
+is-deeply DI("IDDID"), (0,5,4,1,3,2);
+is-deeply DI("DDD"), (3,2,1,0);
+is-deeply DI("IDDIIDIIIDIIDDIDIDDI"), (0,20,19,1,2,18,3,4,5,17,6,7,16,15,8,14,9,13,12,10,11);
+
+sub DI($str)
+{
+ my @a = flat $str.comb, "I";
+ my %h := { :I(0), :D(@a.end) }
+
+ gather while @a.shift -> $a
+ {
+ take %h{$a}.abs;
+ %h{$a}--
+ }
+}