aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-348/zapwai/perl/ch-1.pl32
-rw-r--r--challenge-348/zapwai/perl/ch-2.pl45
2 files changed, 77 insertions, 0 deletions
diff --git a/challenge-348/zapwai/perl/ch-1.pl b/challenge-348/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..2e226505fe
--- /dev/null
+++ b/challenge-348/zapwai/perl/ch-1.pl
@@ -0,0 +1,32 @@
+use v5.38;
+
+sub proc($str) {
+ say "Input: $str";
+ my $len = length($str)/2;
+ my $first = lc(substr $str, 0, $len);
+ my $second = lc(substr $str, $len);
+ my ($first_cnt, $second_cnt) = (0, 0);
+ for my $c (split '', $first) {
+ if ($c =~ /[aeiou]/) {
+ $first_cnt++;
+ }
+ }
+ for my $c (split '', $second) {
+ if ($c =~ /[aeiou]/) {
+ $second_cnt++;
+ }
+ }
+ my $o = ($first_cnt == $second_cnt) ? "true" : "false";
+ say "Output: $o";
+}
+
+my $str = "textbook";
+proc($str);
+$str = "book";
+proc($str);
+$str = "AbCdEfGh";
+proc($str);
+$str = "rhythmmyth";
+proc($str);
+$str = "UmpireeAudio";
+proc($str);
diff --git a/challenge-348/zapwai/perl/ch-2.pl b/challenge-348/zapwai/perl/ch-2.pl
new file mode 100644
index 0000000000..d7ede4583d
--- /dev/null
+++ b/challenge-348/zapwai/perl/ch-2.pl
@@ -0,0 +1,45 @@
+use v5.38;
+use List::Util qw(min);
+
+sub proc($src, $tar) {
+ say "Input: \$source = $src,\t\$target = $tar";
+ my ($srchr, $srcmin) = split ":", $src;
+ my ($tarhr, $tarmin) = split ":", $tar;
+ my $diff = (60*$tarhr + $tarmin) - (60*$srchr + $srcmin);
+ $diff = min(abs($diff), 1440-abs($diff));
+ my @l = reverse (1, 5, 15, 60);
+ my $steps = 0;
+ for my $i (0 .. $#l) {
+ my $div = $l[$i];
+ if ($diff >= $div) {
+ my $K = int($diff / $div);
+ $steps += $K;
+ $diff -= $K*$div;
+ }
+ }
+ say "Output: $steps";
+}
+
+my $src = "02:30";
+my $tar = "02:45";
+proc($src, $tar);
+
+$src = "11:55";
+$tar = "12:15";
+
+proc($src, $tar);
+
+$src = "09:00";
+$tar = "13:00";
+
+proc($src, $tar);
+
+$src = "23:45";
+$tar = "00:30";
+
+proc($src, $tar);
+
+$src = "14:20";
+$tar = "15:25";
+
+proc($src, $tar);