From e357360c1e5276c3a5dfc3bfbc26b1a509a5925e Mon Sep 17 00:00:00 2001 From: Luis Mochan Date: Mon, 5 Dec 2022 18:45:03 -0600 Subject: Solve PWC194 --- challenge-194/wlmb/blog.txt | 1 + challenge-194/wlmb/perl/ch-1.pl | 17 +++++++++++++++++ challenge-194/wlmb/perl/ch-2.pl | 17 +++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 challenge-194/wlmb/blog.txt create mode 100755 challenge-194/wlmb/perl/ch-1.pl create mode 100755 challenge-194/wlmb/perl/ch-2.pl 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 +} -- cgit