aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Lynn <bizlsg@localhost.localdomain>2022-12-14 19:46:35 +0800
committerStephen Lynn <bizlsg@localhost.localdomain>2022-12-14 19:46:35 +0800
commit26fbe4844eb0eb44c5c0af69b067e9248b2dbb40 (patch)
treebb9b7be7106be270195d574c6cd686f7d053b151
parentc1d3932971f399789d4ee01cb886bb1e984f2563 (diff)
downloadperlweeklychallenge-club-26fbe4844eb0eb44c5c0af69b067e9248b2dbb40.tar.gz
perlweeklychallenge-club-26fbe4844eb0eb44c5c0af69b067e9248b2dbb40.tar.bz2
perlweeklychallenge-club-26fbe4844eb0eb44c5c0af69b067e9248b2dbb40.zip
pwc 195
-rw-r--r--challenge-195/steve-g-lynn/blog.txt1
-rwxr-xr-xchallenge-195/steve-g-lynn/perl/ch-1.pl17
-rwxr-xr-xchallenge-195/steve-g-lynn/perl/ch-2.pl29
-rwxr-xr-xchallenge-195/steve-g-lynn/raku/ch-1.sh3
-rwxr-xr-xchallenge-195/steve-g-lynn/raku/ch-2.p614
5 files changed, 64 insertions, 0 deletions
diff --git a/challenge-195/steve-g-lynn/blog.txt b/challenge-195/steve-g-lynn/blog.txt
new file mode 100644
index 0000000000..52e87873c3
--- /dev/null
+++ b/challenge-195/steve-g-lynn/blog.txt
@@ -0,0 +1 @@
+https://thiujiac.blogspot.com/2022/12/pwc-195.html
diff --git a/challenge-195/steve-g-lynn/perl/ch-1.pl b/challenge-195/steve-g-lynn/perl/ch-1.pl
new file mode 100755
index 0000000000..efec4b57db
--- /dev/null
+++ b/challenge-195/steve-g-lynn/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env -S perl -wl
+
+use List::MoreUtils qw(uniq);
+
+print &special_integers(15); #14
+print &special_integers(35); #32
+
+sub special_integers {
+ my ($n)=@_;
+
+ my $ctr=0;
+ for my $i (1 .. $n) {
+ my @n = uniq split(//,$i);
+ ($i == join('',@n)) && ($ctr++);
+ }
+ return $ctr;
+}
diff --git a/challenge-195/steve-g-lynn/perl/ch-2.pl b/challenge-195/steve-g-lynn/perl/ch-2.pl
new file mode 100755
index 0000000000..a5c8f54ce1
--- /dev/null
+++ b/challenge-195/steve-g-lynn/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env -S perl -wl
+
+use List::Util qw(min max);
+
+use strict;
+
+print &most_frequent_even((1,1,2,6,2)); #2
+print &most_frequent_even((1,3,5,7)); #-1
+print &most_frequent_even((6,4,4,6,1)); #4;
+
+
+sub most_frequent_even {
+
+ my (@list) = @_;
+
+ (my @evens = grep {($_ % 2) == 0} @list ) || (return -1);
+
+ my %bag;
+ for (@evens) {
+ $bag{$_}++;
+ }
+
+ my $max_freq = max values %bag;
+
+ @evens = grep {$bag{$_} == $max_freq} keys %bag;
+
+ min @evens;
+
+}
diff --git a/challenge-195/steve-g-lynn/raku/ch-1.sh b/challenge-195/steve-g-lynn/raku/ch-1.sh
new file mode 100755
index 0000000000..23bf08d24c
--- /dev/null
+++ b/challenge-195/steve-g-lynn/raku/ch-1.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e '(1 .. @*ARGS[0]).grep({$_ == $_.comb.unique.join}).elems.say' $@
diff --git a/challenge-195/steve-g-lynn/raku/ch-2.p6 b/challenge-195/steve-g-lynn/raku/ch-2.p6
new file mode 100755
index 0000000000..f29bff6c37
--- /dev/null
+++ b/challenge-195/steve-g-lynn/raku/ch-2.p6
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl6
+
+say &most-frequent-even((1,1,2,6,2)); #2
+say &most-frequent-even((1,3,5,7)); #-1
+say &most-frequent-even((6,4,4,6,1)); #4;
+
+
+sub most-frequent-even (@list) {
+ (my @evens = @list.grep(* %% 2)) || (return -1);
+
+ my $max-freq = @evens.Bag.values.max;
+
+ @evens.Bag.pairs.grep({$_.value == $max-freq}).map({$_.key}).min;
+}