aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2022-12-05 18:45:03 -0600
committerLuis Mochan <mochan@fis.unam.mx>2022-12-05 18:45:03 -0600
commite357360c1e5276c3a5dfc3bfbc26b1a509a5925e (patch)
treeac569c85b45b71b6f069e0ec6aa3af9990401e38
parent8d4ad39acceae6916068d7661648e075877837cc (diff)
downloadperlweeklychallenge-club-e357360c1e5276c3a5dfc3bfbc26b1a509a5925e.tar.gz
perlweeklychallenge-club-e357360c1e5276c3a5dfc3bfbc26b1a509a5925e.tar.bz2
perlweeklychallenge-club-e357360c1e5276c3a5dfc3bfbc26b1a509a5925e.zip
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
+}