diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-04-03 00:00:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-03 00:00:39 +0100 |
| commit | 716d55f6ca3ccbcb3f0d29afaae1ee3ec426c4a1 (patch) | |
| tree | aeca18c72d8098de75fbf39489f60fa305a18f4f | |
| parent | 8b1a6acdb444383333f8d9ea2010db0eb6435d70 (diff) | |
| parent | 4749a7e6fc6b4f0a21a582742e195fda3f41e7bb (diff) | |
| download | perlweeklychallenge-club-716d55f6ca3ccbcb3f0d29afaae1ee3ec426c4a1.tar.gz perlweeklychallenge-club-716d55f6ca3ccbcb3f0d29afaae1ee3ec426c4a1.tar.bz2 perlweeklychallenge-club-716d55f6ca3ccbcb3f0d29afaae1ee3ec426c4a1.zip | |
Merge pull request #7814 from wlmb/challenges
SOlve PWC210
| -rw-r--r-- | challenge-210/wlmb/blog.txt | 2 | ||||
| -rwxr-xr-x | challenge-210/wlmb/perl/ch-1.pl | 12 | ||||
| -rwxr-xr-x | challenge-210/wlmb/perl/ch-2.pl | 24 |
3 files changed, 38 insertions, 0 deletions
diff --git a/challenge-210/wlmb/blog.txt b/challenge-210/wlmb/blog.txt new file mode 100644 index 0000000000..674cd2d271 --- /dev/null +++ b/challenge-210/wlmb/blog.txt @@ -0,0 +1,2 @@ +https://wlmb.github.io/2023/03/27/PWC210/ + diff --git a/challenge-210/wlmb/perl/ch-1.pl b/challenge-210/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..94e35f4ba7 --- /dev/null +++ b/challenge-210/wlmb/perl/ch-1.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl +# Perl weekly challenge 210 +# Task 1: Kill and Win +# +# See https://wlmb.github.io/2023/03/27/PWC210/#task-1-kill-and-win +use v5.36; +use List::Util qw(sum); +die <<~"FIN" unless @ARGV; + Usage: $0 N1 [N2...] + to get the maximum points when killing the numbers N1 N2... + FIN +say "(@ARGV) -> ", sum @ARGV; diff --git a/challenge-210/wlmb/perl/ch-2.pl b/challenge-210/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..d7d00b1a73 --- /dev/null +++ b/challenge-210/wlmb/perl/ch-2.pl @@ -0,0 +1,24 @@ +#!/usr/bin/env perl +# Perl weekly challenge 210 +# Task 2: Number Collision +# +# See https://wlmb.github.io/2023/03/27/PWC210/#task-2-number-collision +use v5.36; +use List::Util qw(first); +die <<~"FIN" unless @ARGV; + Usage: $0 N1 [N2...] + To find which numbers among N1 N2... survive all collisions + FIN +my @numbers=@ARGV; # copy input +while(defined( # search for index of next collision + my $collision=first { + $numbers[$_]>$numbers[$_+1] && $numbers[$_]>=0>=$numbers[$_+1] + } + 0..@numbers-2 + ) + ){ + splice @numbers, $collision + 1, 1 if $numbers[$collision] > -$numbers[$collision+1]; + splice @numbers, $collision, 1 if $numbers[$collision] < -$numbers[$collision+1]; + splice @numbers, $collision, 2 if $numbers[$collision] == -$numbers[$collision+1]; +} +say "(@ARGV) -> (@numbers)" |
