diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-08-29 22:40:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-29 22:40:15 +0100 |
| commit | 4dc60a91179e57d3a4f857503d721ab50652d442 (patch) | |
| tree | 0359e04c99ed601ff11cbd5b16ecd23fac0072d0 | |
| parent | b1688c08ffdcf95b5b0c2660cd97b254e461fdbd (diff) | |
| parent | 69284e2818166b062c9b1462ab7f87c8857c8422 (diff) | |
| download | perlweeklychallenge-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.raku | 23 |
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; +} |
