aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2023-07-31 18:55:00 -0400
committerJaldhar H. Vyas <jaldhar@braincells.com>2023-07-31 18:55:00 -0400
commit396783db8487d95d44069f36c589365ed9376c63 (patch)
treeb2c60d72a5cc49daafb2412234b4cc209c574b1e
parente511966ce2280dbedb2c916d9e6254708800639e (diff)
downloadperlweeklychallenge-club-396783db8487d95d44069f36c589365ed9376c63.tar.gz
perlweeklychallenge-club-396783db8487d95d44069f36c589365ed9376c63.tar.bz2
perlweeklychallenge-club-396783db8487d95d44069f36c589365ed9376c63.zip
Challenge 228 by Jaldhar H. Vyas.
-rw-r--r--challenge-228/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-228/jaldhar-h-vyas/perl/ch-1.pl24
-rwxr-xr-xchallenge-228/jaldhar-h-vyas/perl/ch-2.pl21
-rwxr-xr-xchallenge-228/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-228/jaldhar-h-vyas/raku/ch-2.raku18
5 files changed, 67 insertions, 0 deletions
diff --git a/challenge-228/jaldhar-h-vyas/blog.txt b/challenge-228/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..75cc906aa4
--- /dev/null
+++ b/challenge-228/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2023/07/perl_weekly_challenge_week_228.html
diff --git a/challenge-228/jaldhar-h-vyas/perl/ch-1.pl b/challenge-228/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..5d11141cc2
--- /dev/null
+++ b/challenge-228/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub classifyUnique {
+ my %count;
+
+ for my $n (@_) {
+ $count{$n}++;
+ }
+ return grep { $count{$_} == 1; } keys %count;
+}
+
+sub sum {
+ my $total = 0;
+
+ for my $elem (@_) {
+ $total += $elem;
+ }
+
+ return $total;
+}
+
+say sum(classifyUnique(@ARGV)); \ No newline at end of file
diff --git a/challenge-228/jaldhar-h-vyas/perl/ch-2.pl b/challenge-228/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..6134bdadf5
--- /dev/null
+++ b/challenge-228/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub min {
+ return ( sort { $a <=> $b } @_)[0];
+}
+
+my @ints = @ARGV;
+my $ops = 0;
+
+while (scalar @ints) {
+ if ($ints[0] == min(@ints)) {
+ shift @ints;
+ } else {
+ push @ints, shift @ints;
+ }
+ $ops++;
+}
+
+say $ops;
diff --git a/challenge-228/jaldhar-h-vyas/raku/ch-1.sh b/challenge-228/jaldhar-h-vyas/raku/ch-1.sh
new file mode 100755
index 0000000000..09446148f8
--- /dev/null
+++ b/challenge-228/jaldhar-h-vyas/raku/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e '@*ARGS.classify({$_}).grep({.value==1}).map({.key}).sum.say' "$@"
diff --git a/challenge-228/jaldhar-h-vyas/raku/ch-2.raku b/challenge-228/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..b2c05bdbf9
--- /dev/null
+++ b/challenge-228/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@ints
+) {
+ my $ops = 0;
+
+ while @ints.elems {
+ if @ints[0] == @ints.min {
+ @ints.shift;
+ } else {
+ @ints.push(@ints.shift);
+ }
+ $ops++;
+ }
+
+ say $ops;
+} \ No newline at end of file