aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-12-06 14:08:15 +0000
committerGitHub <noreply@github.com>2022-12-06 14:08:15 +0000
commit0a04c02bb18e5816da378d6b389a53fc0d0e04cb (patch)
tree446c00a043429ecaa22ff1a4fd35a47f8f78b85c
parent486fb06a789290b642c7019c381b5145b0a21b42 (diff)
parente357360c1e5276c3a5dfc3bfbc26b1a509a5925e (diff)
downloadperlweeklychallenge-club-0a04c02bb18e5816da378d6b389a53fc0d0e04cb.tar.gz
perlweeklychallenge-club-0a04c02bb18e5816da378d6b389a53fc0d0e04cb.tar.bz2
perlweeklychallenge-club-0a04c02bb18e5816da378d6b389a53fc0d0e04cb.zip
Merge pull request #7215 from wlmb/challenges
Solve PWC194
-rw-r--r--challenge-194/wlmb/blog.txt1
-rwxr-xr-xchallenge-194/wlmb/perl/ch-1.pl17
-rwxr-xr-xchallenge-194/wlmb/perl/ch-2.pl17
3 files changed, 35 insertions, 0 deletions
diff --git a/challenge-194/wlmb/blog.txt b/challenge-194/wlmb/blog.txt
new file mode 100644
index 0000000000..d7bfd69cbb
--- /dev/null
+++ b/challenge-194/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2022/12/05/PWC194/
diff --git a/challenge-194/wlmb/perl/ch-1.pl b/challenge-194/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..158d5c71c6
--- /dev/null
+++ b/challenge-194/wlmb/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 194
+# Task 1: Digital Clock
+#
+# See https://wlmb.github.io/2022/12/05/PWC194/#task-1-digital-clock
+use v5.36;
+#Perl @PerlWChallenge 194 Task 1: Digital Clock
+
+L: for my $in(@ARGV){
+ for(reverse(0..9)){
+ my $y=$in;
+ $y=~s/\?/$_/;
+ say("Wrong format $in"), next L unless $y=~/(\d\d):(\d\d)/;
+ say("$in -> $_"), next L if $1<=23 and $2<=59
+ }
+ say "$in -> No solution";
+}
diff --git a/challenge-194/wlmb/perl/ch-2.pl b/challenge-194/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..dcb77a5ce8
--- /dev/null
+++ b/challenge-194/wlmb/perl/ch-2.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 194
+# Task 2: Frequency Equalizer
+#
+# See https://wlmb.github.io/2022/12/05/PWC194/#task-2-frequency-equalizer
+use v5.36;
+use PDL;
+for(@ARGV){
+ my %frequencies;
+ $frequencies{$_}++ for(split "");
+ my $vals=pdl(my @vals=values %frequencies);
+ my $N=@vals;
+ my $sum=$vals->sum;
+ my $x=($sum-1)/$N;
+ my $t=($vals**2)->sum;
+ say "$_ -> ", $sum%$N==1 && $t==$N*$x**2 + 2*$x + 1? 1 :0
+}