diff options
| author | David Ferrone <zapwai@gmail.com> | 2023-12-25 16:00:51 -0500 |
|---|---|---|
| committer | David Ferrone <zapwai@gmail.com> | 2023-12-25 16:00:51 -0500 |
| commit | f52c911f9ada18fd83cda2b5651a63741b714e81 (patch) | |
| tree | bad9a17f5bf9f3d931bcd8cc3d190c8b4cc1d9af | |
| parent | 6ba11a7b1f5ede2a9ce66870c6ed091fde9ad40b (diff) | |
| download | perlweeklychallenge-club-f52c911f9ada18fd83cda2b5651a63741b714e81.tar.gz perlweeklychallenge-club-f52c911f9ada18fd83cda2b5651a63741b714e81.tar.bz2 perlweeklychallenge-club-f52c911f9ada18fd83cda2b5651a63741b714e81.zip | |
Week 249
| -rw-r--r-- | challenge-249/zapwai/perl/ch-1.pl | 23 | ||||
| -rw-r--r-- | challenge-249/zapwai/perl/ch-2.pl | 34 |
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-249/zapwai/perl/ch-1.pl b/challenge-249/zapwai/perl/ch-1.pl new file mode 100644 index 0000000000..6550ba4305 --- /dev/null +++ b/challenge-249/zapwai/perl/ch-1.pl @@ -0,0 +1,23 @@ +use v5.30; +my @ints = (3, 2, 3, 2, 2, 2); +#my @ints = (1, 2, 3, 4); +say "Input: @ints"; +print "Output: "; +my %h; +$h{$_}++ for (@ints); +my $cnt = 0; +for my $k ( values %h ) { + if ($k % 2 != 0) { + say "()"; + last; + } else { + $cnt++; + } +} +if ($cnt == scalar keys %h) { + foreach my $k ( keys %h ) { + my $d = $h{$k} / 2; + print "($k, $k) " x $d; + } + print "\n"; +} diff --git a/challenge-249/zapwai/perl/ch-2.pl b/challenge-249/zapwai/perl/ch-2.pl new file mode 100644 index 0000000000..7b6c161aa9 --- /dev/null +++ b/challenge-249/zapwai/perl/ch-2.pl @@ -0,0 +1,34 @@ +use v5.30; +my $str = "IDID"; +# my $str = "III"; +# my $str = "DDI"; +my @s = split "", $str; +my @p = (0 .. @s); +say "Input: \$str = $str"; +print "Output: "; +my $cnt; +do { + $cnt = 0; + for my $i (0 .. $#s) { + if ($s[$i] eq 'I') { + if ($p[$i] > $p[$i+1]) { + swap($i, \@p); + $cnt++; + } + } else { + if ($p[$i] < $p[$i+1]) { + swap($i, \@p); + $cnt++; + } + } + } +} while ($cnt != 0); + +say "@p"; + +sub swap { + my ($i, $ref) = @_; + my $val = $$ref[$i]; + $$ref[$i] = $$ref[$i + 1]; + $$ref[$i + 1] = $val; +} |
