diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2024-01-05 17:32:06 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2024-01-05 17:32:06 -0500 |
| commit | 7611c9ff2548d917e5093505ef514b351ec82b64 (patch) | |
| tree | 4badfc011a110814993230276c069a6f4b33839e | |
| parent | cda5876d6dad1b64c91468748dc3be4d708d0789 (diff) | |
| download | perlweeklychallenge-club-7611c9ff2548d917e5093505ef514b351ec82b64.tar.gz perlweeklychallenge-club-7611c9ff2548d917e5093505ef514b351ec82b64.tar.bz2 perlweeklychallenge-club-7611c9ff2548d917e5093505ef514b351ec82b64.zip | |
Challenge 249 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-249/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-249/jaldhar-h-vyas/perl/ch-1.pl | 24 | ||||
| -rwxr-xr-x | challenge-249/jaldhar-h-vyas/perl/ch-2.pl | 21 | ||||
| -rwxr-xr-x | challenge-249/jaldhar-h-vyas/raku/ch-1.raku | 16 | ||||
| -rwxr-xr-x | challenge-249/jaldhar-h-vyas/raku/ch-2.raku | 21 |
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-249/jaldhar-h-vyas/blog.txt b/challenge-249/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..76808547d1 --- /dev/null +++ b/challenge-249/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2024/01/perl_weekly_challenge_week_249.html diff --git a/challenge-249/jaldhar-h-vyas/perl/ch-1.pl b/challenge-249/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..045cacbe10 --- /dev/null +++ b/challenge-249/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +my @ints = @ARGV; + +my %elements; +for my $int (@ints) { + $elements{$int}++; +} + +my @output; +for my $k (keys %elements) { + if (scalar $elements{$k} % 2 == 1) { + say '()'; + exit; + } + + for (0 .. $elements{$k} / 2 - 1) { + push @output, [ $k, $k ]; + } +} + +say join q{, }, map { q{(} . (join q{, }, @{$_} ) . q{)} } @output; diff --git a/challenge-249/jaldhar-h-vyas/perl/ch-2.pl b/challenge-249/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..843e839e0d --- /dev/null +++ b/challenge-249/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,21 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +my $str = shift; + +my @chars = split //, $str; +my @numbers = 0 .. length $str; +my @s; + +for my $c (@chars) { + if ($c eq 'D') { + push @s, pop @numbers; + } + if ($c eq 'I') { + push @s, shift @numbers; + } +} +push @s, shift @numbers; + +say q{(}, (join q{, }, @s), q{)}; diff --git a/challenge-249/jaldhar-h-vyas/raku/ch-1.raku b/challenge-249/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..00c7074a99 --- /dev/null +++ b/challenge-249/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,16 @@ +#!/usr/bin/raku + +sub MAIN( + *@ints +) { + @ints.classify({ $_ }, :into(my %elements;) ); + if all %elements.values.map({ @$_.elems % 2 == 0 }) { + %elements.values + .map({| @$_.batch(2) }) + .map({ q{(} ~ @$_.join(q{, }) ~ q{)} }) + .join(q{, }) + .say; + } else { + say '()'; + } +} diff --git a/challenge-249/jaldhar-h-vyas/raku/ch-2.raku b/challenge-249/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..dad4f8fcaf --- /dev/null +++ b/challenge-249/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/usr/bin/raku + +sub MAIN( + Str $str +) { + my @chars = $str.comb; + my @numbers = 0 .. $str.chars; + my @s; + + for @chars -> $c { + if $c eq 'D' { + @s.push(@numbers.pop); + } + if $c eq 'I' { + @s.push(@numbers.shift); + } + } + @s.push(@numbers.shift); + + say q{(}, @s.join(q{, }), q{)}; +} |
