aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-04-16 03:15:20 +0100
committerGitHub <noreply@github.com>2023-04-16 03:15:20 +0100
commit4dd1b48e8d723c62fa01bf8875fffee628be3cff (patch)
treefeb2dd847e9bef002ce65931872570809be8e98f
parentb91d56518d12647f8227fb8313b13b8544efaebd (diff)
parenta1c355b453abbef7359b3adf0a9154ac8d5899e7 (diff)
downloadperlweeklychallenge-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.txt2
-rw-r--r--challenge-212/avery-adams/perl/ch-1.pl13
-rw-r--r--challenge-212/avery-adams/perl/ch-2.pl35
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]};
+}