diff options
| -rw-r--r-- | challenge-348/zapwai/perl/ch-1.pl | 32 | ||||
| -rw-r--r-- | challenge-348/zapwai/perl/ch-2.pl | 45 |
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); |
