diff options
| -rw-r--r-- | challenge-048/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-048/jaldhar-h-vyas/perl/ch-1.pl | 25 | ||||
| -rwxr-xr-x | challenge-048/jaldhar-h-vyas/perl/ch-2.pl | 18 | ||||
| -rwxr-xr-x | challenge-048/jaldhar-h-vyas/raku/ch-1.p6 | 24 | ||||
| -rwxr-xr-x | challenge-048/jaldhar-h-vyas/raku/ch-2.p6 | 14 |
5 files changed, 82 insertions, 0 deletions
diff --git a/challenge-048/jaldhar-h-vyas/blog.txt b/challenge-048/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..e3feae6113 --- /dev/null +++ b/challenge-048/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2020/02/perl_weekly_challenge_week_48.html diff --git a/challenge-048/jaldhar-h-vyas/perl/ch-1.pl b/challenge-048/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..61bc7f62cb --- /dev/null +++ b/challenge-048/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl +use warnings; +use strict; +use 5.010; + +my @people = (0 .. 49); + +my $remaining = scalar @people; +my $next = 0; +my $victim = 1; + +while ($remaining > 1) { + $people[$victim] = undef; + $remaining--; + do { + $next = ($next + 1) % 50; + } until defined $people[$next]; + + $victim = $next; + do { + $victim = ($victim + 1) % 50; + } until defined $people[$victim]; +} + +say +(grep { defined $_; } @people)[0] + 1; diff --git a/challenge-048/jaldhar-h-vyas/perl/ch-2.pl b/challenge-048/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..eeb57ebd03 --- /dev/null +++ b/challenge-048/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl +use warnings; +use strict; +use 5.010; + +my @years = + grep { + / (?<year> \d\d) $ /gmx; + grep { $_ == $+{year}} (10, 20, 30, 40, 50, 60 , 70, 80, 90, 1, 11, 21) + } (2000 .. 2999); + +for my $year (@years) { + (reverse $year) =~ / \A (?<month> \d\d) (?<day> \d\d) \z /gmx; + + if ($+{day} < 23) { + say join q{/}, ($+{month}, $+{day}, $year); + } +} diff --git a/challenge-048/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-048/jaldhar-h-vyas/raku/ch-1.p6 new file mode 100755 index 0000000000..2e638abb4d --- /dev/null +++ b/challenge-048/jaldhar-h-vyas/raku/ch-1.p6 @@ -0,0 +1,24 @@ +#!/usr/bin/perl6 + +multi sub MAIN() { + my @people = (0 .. 49); + + my $remaining = @people.elems; + my $next = 0; + my $victim = 1; + + while $remaining > 1 { + @people[$victim] = Nil; + $remaining--; + repeat { + $next = ($next + 1) % 50; + } until defined @people[$next]; + + $victim = $next; + repeat { + $victim = ($victim + 1) % 50; + } until defined @people[$victim]; + } + + say @people.grep({ defined $_; })[0] + 1; +}
\ No newline at end of file diff --git a/challenge-048/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-048/jaldhar-h-vyas/raku/ch-2.p6 new file mode 100755 index 0000000000..ec41c61030 --- /dev/null +++ b/challenge-048/jaldhar-h-vyas/raku/ch-2.p6 @@ -0,0 +1,14 @@ +#!/usr/bin/perl6 + +my @years = (2000 .. 2999).grep({ + / $<year> = (\d\d) $ /; + (10, 20, 30, 40, 50, 60 , 70, 80, 90, 1, 11, 21).grep({ $_ == $/<year>}) +}); + +for @years -> $year { + $year.flip ~~ / ^ $<month> = (\d\d) $<day> = (\d\d) $ /; + + if $/<day> < 23 { + ($/<month>, $/<day>, $year).join(q{/}).say; + } +} |
