aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-194/mark-anderson/raku/ch-1.raku12
-rw-r--r--challenge-194/mark-anderson/raku/ch-2.raku18
2 files changed, 20 insertions, 10 deletions
diff --git a/challenge-194/mark-anderson/raku/ch-1.raku b/challenge-194/mark-anderson/raku/ch-1.raku
index d7767f44af..b8de0fad8e 100644
--- a/challenge-194/mark-anderson/raku/ch-1.raku
+++ b/challenge-194/mark-anderson/raku/ch-1.raku
@@ -12,13 +12,9 @@ sub digital-clock($t)
{
return do given $t.index('?')
{
- when 4 { 9 }
- when 3 { 5 }
- default
- {
- my $d = $t ~~ m:1st/\d/;
- when 1 { $d < 2 ?? 9 !! 3 }
- default { $d < 4 ?? 2 !! 1 }
- }
+ when 4 { 9 }
+ when 3 { 5 }
+ when 1 { $t ~~ /\d/ < 2 ?? 9 !! 3 }
+ default { $t ~~ /\d/ < 4 ?? 2 !! 1 }
}
}
diff --git a/challenge-194/mark-anderson/raku/ch-2.raku b/challenge-194/mark-anderson/raku/ch-2.raku
index b739dd9bf3..4977a7c492 100644
--- a/challenge-194/mark-anderson/raku/ch-2.raku
+++ b/challenge-194/mark-anderson/raku/ch-2.raku
@@ -5,10 +5,24 @@ ok freq-equalizer('abbc');
ok freq-equalizer('xyzyyxz');
nok freq-equalizer('xzxz');
ok freq-equalizer('xxxxx');
+nok freq-equalizer('aaaabbbcc');
+nok freq-equalizer('aabbcd');
+ok freq-equalizer('aabbccd');
+ok freq-equalizer('z');
sub freq-equalizer($_)
{
my $bag = .comb.BagHash;
- $bag{ $bag.antipairs.max.value }--;
- [==] $bag.values;
+
+ if $bag.minpairs == 1
+ {
+ $bag{ $bag.antipairs.min.value }--
+ }
+
+ else
+ {
+ $bag{ $bag.antipairs.max.value }--
+ }
+
+ [==] $bag.values
}