aboutsummaryrefslogtreecommitdiff
path: root/challenge-333
diff options
context:
space:
mode:
authorBarrOff <58253563+BarrOff@users.noreply.github.com>2025-08-10 22:26:34 +0200
committerBarrOff <58253563+BarrOff@users.noreply.github.com>2025-08-10 22:26:34 +0200
commit50d9f0865d4da565eeaaeee577f1eccb448ac6d1 (patch)
tree65ed4272195829658bd6285e59eb23b87e20731d /challenge-333
parent82321caa0fa61341410bbafe4f86882c67e922ef (diff)
downloadperlweeklychallenge-club-50d9f0865d4da565eeaaeee577f1eccb448ac6d1.tar.gz
perlweeklychallenge-club-50d9f0865d4da565eeaaeee577f1eccb448ac6d1.tar.bz2
perlweeklychallenge-club-50d9f0865d4da565eeaaeee577f1eccb448ac6d1.zip
feat: add solution for challenge 333 from BarrOff
Diffstat (limited to 'challenge-333')
-rw-r--r--challenge-333/barroff/raku/ch-1.p634
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-333/barroff/raku/ch-1.p6 b/challenge-333/barroff/raku/ch-1.p6
new file mode 100644
index 0000000000..3b39b0b075
--- /dev/null
+++ b/challenge-333/barroff/raku/ch-1.p6
@@ -0,0 +1,34 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub duplicate-zeros(@ints --> Positional) {
+ my @result = map(
+ {
+ $_ == 0
+ ?? Slip.new(0, 0)
+ !! $_
+ },
+ @ints
+ );
+ return @result[0..@ints.elems - 1];
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 5;
+
+ is duplicate-zeros([1, 0, 2, 3, 0, 4, 5, 0]), (1, 0, 0, 2, 3, 0, 0, 4),
+ 'works for (1, 0, 2, 3, 0, 4, 5, 0)';
+ is duplicate-zeros([1, 2, 3]), (1, 2, 3), 'works for (1, 2, 3)';
+ is duplicate-zeros([1, 2, 3, 0]), (1, 2, 3, 0), 'works for (1, 2, 3, 0)';
+ is duplicate-zeros([0, 0, 1, 2]), (0, 0, 0, 0), 'works for (0, 0, 1, 2)';
+ is duplicate-zeros([1, 2, 0, 3, 4]), (1, 2, 0, 0, 3),
+ 'works for (1, 2, 0, 3, 4)';
+}
+
+#| Take user provided list like 1 0 2 3 0 4 5 0
+multi sub MAIN(*@ints where @ints.elems ≥ 1) {
+ say duplicate-zeros(@ints);
+}