diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-06-12 00:52:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-12 00:52:23 +0100 |
| commit | a65f6334496adf75b288210984f809941a3eea8f (patch) | |
| tree | 27145e7d70276a674fc3cdf991d7238187e756c2 | |
| parent | 38b214c5d2eee86db7573b3a783e90b45d52a769 (diff) | |
| parent | 634c23f2a6f68b9ced2e12368504fae3b1824c5e (diff) | |
| download | perlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.tar.gz perlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.tar.bz2 perlweeklychallenge-club-a65f6334496adf75b288210984f809941a3eea8f.zip | |
Merge pull request #12167 from arnesom/branch-for-challenge-325
Arne Sommer
| -rw-r--r-- | challenge-325/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-325/arne-sommer/raku/ch-1.raku | 12 | ||||
| -rwxr-xr-x | challenge-325/arne-sommer/raku/ch-2.raku | 29 | ||||
| -rwxr-xr-x | challenge-325/arne-sommer/raku/consecutive-one | 12 | ||||
| -rwxr-xr-x | challenge-325/arne-sommer/raku/final-price | 29 |
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-325/arne-sommer/blog.txt b/challenge-325/arne-sommer/blog.txt new file mode 100644 index 0000000000..6949433b16 --- /dev/null +++ b/challenge-325/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/one-final.html diff --git a/challenge-325/arne-sommer/raku/ch-1.raku b/challenge-325/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..85386e0d33 --- /dev/null +++ b/challenge-325/arne-sommer/raku/ch-1.raku @@ -0,0 +1,12 @@ +#! /usr/bin/env raku + +subset BinaryDigit of Int where * eq any(0,1); + +unit sub MAIN (*@binary where @binary.elems >= 1 && all(@binary) ~~ BinaryDigit, + :v(:$verbose)); + +my @ones = @binary.join.split(/0+/); + +say ": One strings: { @ones.join(",") }" if $verbose; + +say @ones.max.chars;
\ No newline at end of file diff --git a/challenge-325/arne-sommer/raku/ch-2.raku b/challenge-325/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..ccc1de3e9e --- /dev/null +++ b/challenge-325/arne-sommer/raku/ch-2.raku @@ -0,0 +1,29 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@prices where @prices.elems >= 1 && all(@prices) ~~ UInt, + :v(:$verbose)); + +my @final; + +for ^@prices.elems -> $i +{ + my $price = @prices[$i]; + my $lower = @prices[$i+1 .. Inf].grep(* <= $price).first; + + if defined $lower + { + my $new = $price - $lower; + + say ": Price: $price - lower $lower = $new" if $verbose; + + @final.push: $new; + } + else + { + say ": Price: $price -> no lower = $price" if $verbose; + + @final.push: $price; + } +} + +say @final;
\ No newline at end of file diff --git a/challenge-325/arne-sommer/raku/consecutive-one b/challenge-325/arne-sommer/raku/consecutive-one new file mode 100755 index 0000000000..85386e0d33 --- /dev/null +++ b/challenge-325/arne-sommer/raku/consecutive-one @@ -0,0 +1,12 @@ +#! /usr/bin/env raku + +subset BinaryDigit of Int where * eq any(0,1); + +unit sub MAIN (*@binary where @binary.elems >= 1 && all(@binary) ~~ BinaryDigit, + :v(:$verbose)); + +my @ones = @binary.join.split(/0+/); + +say ": One strings: { @ones.join(",") }" if $verbose; + +say @ones.max.chars;
\ No newline at end of file diff --git a/challenge-325/arne-sommer/raku/final-price b/challenge-325/arne-sommer/raku/final-price new file mode 100755 index 0000000000..ccc1de3e9e --- /dev/null +++ b/challenge-325/arne-sommer/raku/final-price @@ -0,0 +1,29 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@prices where @prices.elems >= 1 && all(@prices) ~~ UInt, + :v(:$verbose)); + +my @final; + +for ^@prices.elems -> $i +{ + my $price = @prices[$i]; + my $lower = @prices[$i+1 .. Inf].grep(* <= $price).first; + + if defined $lower + { + my $new = $price - $lower; + + say ": Price: $price - lower $lower = $new" if $verbose; + + @final.push: $new; + } + else + { + say ": Price: $price -> no lower = $price" if $verbose; + + @final.push: $price; + } +} + +say @final;
\ No newline at end of file |
