diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-04-16 03:15:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-16 03:15:20 +0100 |
| commit | 4dd1b48e8d723c62fa01bf8875fffee628be3cff (patch) | |
| tree | feb2dd847e9bef002ce65931872570809be8e98f | |
| parent | b91d56518d12647f8227fb8313b13b8544efaebd (diff) | |
| parent | a1c355b453abbef7359b3adf0a9154ac8d5899e7 (diff) | |
| download | perlweeklychallenge-club-4dd1b48e8d723c62fa01bf8875fffee628be3cff.tar.gz perlweeklychallenge-club-4dd1b48e8d723c62fa01bf8875fffee628be3cff.tar.bz2 perlweeklychallenge-club-4dd1b48e8d723c62fa01bf8875fffee628be3cff.zip | |
Merge pull request #7895 from oldtechaa/212-avery-adams
Add solutions and blog posts for Avery Adams for 212.
| -rw-r--r-- | challenge-212/avery-adams/blogs.txt | 2 | ||||
| -rw-r--r-- | challenge-212/avery-adams/perl/ch-1.pl | 13 | ||||
| -rw-r--r-- | challenge-212/avery-adams/perl/ch-2.pl | 35 |
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-212/avery-adams/blogs.txt b/challenge-212/avery-adams/blogs.txt new file mode 100644 index 0000000000..73ba576b88 --- /dev/null +++ b/challenge-212/avery-adams/blogs.txt @@ -0,0 +1,2 @@ +https://blogs.perl.org/users/oldtechaa/2023/04/perl-weekly-challenge-212---spinning-letters-and-chopping-numbers.html +https://dev.to/oldtechaa/perl-weekly-challenge-212-spinning-letters-and-chopping-numbers-2kdc diff --git a/challenge-212/avery-adams/perl/ch-1.pl b/challenge-212/avery-adams/perl/ch-1.pl new file mode 100644 index 0000000000..b67f72ba31 --- /dev/null +++ b/challenge-212/avery-adams/perl/ch-1.pl @@ -0,0 +1,13 @@ +#!/bin/perl + +use strict; +use v5.28; + +my @letters = split(//, shift); +my @jumps = @ARGV; +my @new_word; + +foreach (my $i = 0; $i <= $#letters; $i++) { + push @new_word, ord($letters[$i]) + $jumps[$i] < (uc($letters[$i]) eq $letters[$i] ? 91 : 123) ? chr(ord($letters[$i]) + $jumps[$i]) : chr(ord($letters[$i]) + $jumps[$i] - 26); +} +say @new_word; diff --git a/challenge-212/avery-adams/perl/ch-2.pl b/challenge-212/avery-adams/perl/ch-2.pl new file mode 100644 index 0000000000..3bd68aeddf --- /dev/null +++ b/challenge-212/avery-adams/perl/ch-2.pl @@ -0,0 +1,35 @@ +#!/bin/perl + +use strict; +use v5.28; + +my $size = shift; +my @list = sort @ARGV; + +say '-1' and exit if scalar @list % $size != 0; +my $passes = (scalar @list / $size) - 1; + +my @results; + +for (my $i = 0; $i <= $passes; $i++) { + my $curr_digit = 0; + push @{$results[$i]}, $list[0]; + for (my $j = 1; $j <= $#list; $j++) { + if ($list[$j] == $list[0] + $curr_digit + 1) { + push @{$results[$i]}, $list[$j]; + splice (@list, $j, 1); + if (scalar @{$results[$i]} == $size) { + last; + } else { + $curr_digit++; + $j--; + } + } + if ($j == $#list and scalar @{$results[$i]} != $size) {say '-1' and exit} + } + splice (@list, 0, 1); +} + +for (my $k = 0; $k <= $#results; $k++) { + say @{$results[$k]}; +} |
