diff options
| author | Avery Adams <oldtechaa@gmail.com> | 2023-04-13 02:08:09 +1200 |
|---|---|---|
| committer | Avery Adams <oldtechaa@gmail.com> | 2023-04-13 02:08:09 +1200 |
| commit | a1c355b453abbef7359b3adf0a9154ac8d5899e7 (patch) | |
| tree | 41ac3c311ca9151df3ddbf936a9f4156c944d28f | |
| parent | 4eb9782a746173721822a9ffa29d6f14297a6dca (diff) | |
| download | perlweeklychallenge-club-a1c355b453abbef7359b3adf0a9154ac8d5899e7.tar.gz perlweeklychallenge-club-a1c355b453abbef7359b3adf0a9154ac8d5899e7.tar.bz2 perlweeklychallenge-club-a1c355b453abbef7359b3adf0a9154ac8d5899e7.zip | |
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]}; +} |
