aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-08-29 22:40:15 +0100
committerGitHub <noreply@github.com>2025-08-29 22:40:15 +0100
commit4dc60a91179e57d3a4f857503d721ab50652d442 (patch)
tree0359e04c99ed601ff11cbd5b16ecd23fac0072d0
parentb1688c08ffdcf95b5b0c2660cd97b254e461fdbd (diff)
parent69284e2818166b062c9b1462ab7f87c8857c8422 (diff)
downloadperlweeklychallenge-club-4dc60a91179e57d3a4f857503d721ab50652d442.tar.gz
perlweeklychallenge-club-4dc60a91179e57d3a4f857503d721ab50652d442.tar.bz2
perlweeklychallenge-club-4dc60a91179e57d3a4f857503d721ab50652d442.zip
Merge pull request #12590 from ash/ash-336
Week 336, Task 2, Raku, @ash
-rw-r--r--challenge-336/ash/raku/ch-2.raku23
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-336/ash/raku/ch-2.raku b/challenge-336/ash/raku/ch-2.raku
new file mode 100644
index 0000000000..2758b8edcb
--- /dev/null
+++ b/challenge-336/ash/raku/ch-2.raku
@@ -0,0 +1,23 @@
+# Task 2 of the Weekly Challenge 336
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-336/#TASK2
+
+say score "5", "2", "C", "D", "+"; # 30
+say score "5", "-2", "4", "C", "D", "9", "+", "+"; # 27
+say score "7", "D", "D", "C", "+", "3"; # 45
+say score "-5", "-10", "+", "D", "C", "+"; # -55
+say score "3", "6", "+", "D", "C", "8", "+", "D", "-2", "C", "+"; # 128
+
+sub score(*@list) {
+ my @stack;
+
+ for @list -> $item {
+ given $item {
+ when /\d/ {@stack.push($item)}
+ when 'C' {@stack.pop if @stack}
+ when 'D' {@stack.push(@stack[*-1] * 2) if @stack}
+ when '+' {@stack.push((@stack[*-1] // 0) + (@stack[*-2] // 0))}
+ }
+ }
+
+ return [+] @stack;
+}