aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-02-18 14:32:40 +0000
committerGitHub <noreply@github.com>2022-02-18 14:32:40 +0000
commit6f0650dbeebde1d8f8012f8791b5f805625e5d2e (patch)
tree197478583acd2fde7568e91cbb825ab1adde2b84
parent85ff80122f99cca4e533fbd70d02fcb931e68f9e (diff)
parent4e46d56e1c2475753fa986e91332dae3f4dc5ab3 (diff)
downloadperlweeklychallenge-club-6f0650dbeebde1d8f8012f8791b5f805625e5d2e.tar.gz
perlweeklychallenge-club-6f0650dbeebde1d8f8012f8791b5f805625e5d2e.tar.bz2
perlweeklychallenge-club-6f0650dbeebde1d8f8012f8791b5f805625e5d2e.zip
Merge pull request #5672 from ccntrq/ccntrq/blog-posts-and-minor-improvements
Ccntrq/blog posts and minor improvements
-rw-r--r--challenge-151/alexander-pankoff/blog1.txt1
-rw-r--r--challenge-151/alexander-pankoff/blog2.txt1
-rwxr-xr-xchallenge-151/alexander-pankoff/perl/ch-1.pl10
-rwxr-xr-xchallenge-151/alexander-pankoff/perl/ch-2.pl25
-rw-r--r--challenge-152/alexander-pankoff/blog1.txt1
-rw-r--r--challenge-152/alexander-pankoff/blog2.txt1
6 files changed, 18 insertions, 21 deletions
diff --git a/challenge-151/alexander-pankoff/blog1.txt b/challenge-151/alexander-pankoff/blog1.txt
new file mode 100644
index 0000000000..7daa5d521a
--- /dev/null
+++ b/challenge-151/alexander-pankoff/blog1.txt
@@ -0,0 +1 @@
+https://pankoff.net/pages/perl-weekly-challenge/challenge-151-task-1.html \ No newline at end of file
diff --git a/challenge-151/alexander-pankoff/blog2.txt b/challenge-151/alexander-pankoff/blog2.txt
new file mode 100644
index 0000000000..045031f44d
--- /dev/null
+++ b/challenge-151/alexander-pankoff/blog2.txt
@@ -0,0 +1 @@
+https://pankoff.net/pages/perl-weekly-challenge/challenge-151-task-2.html \ No newline at end of file
diff --git a/challenge-151/alexander-pankoff/perl/ch-1.pl b/challenge-151/alexander-pankoff/perl/ch-1.pl
index 7f6d3de5da..a0b3efc07e 100755
--- a/challenge-151/alexander-pankoff/perl/ch-1.pl
+++ b/challenge-151/alexander-pankoff/perl/ch-1.pl
@@ -61,7 +61,7 @@ sub minimum_binary_tree_depth ( @tokens) {
my $num_elems = 2**$depth;
for ( my $i = 0 ; $i < $num_elems ; $i++ ) {
- if ( !@tokens || $tokens[0]->isa('SeperatorToken') ) {
+ if ( !@tokens || $tokens[0]->isa('SeparatorToken') ) {
## fill row with dummy placeholder tokens.
unshift @tokens,
map { PlaceHolderToken->new(-1) }
@@ -94,8 +94,8 @@ sub minimum_binary_tree_depth ( @tokens) {
$depth += 1;
- # handle optional seperatortoken
- if ( @tokens && $tokens[0]->isa("SeperatorToken") ) {
+ # handle optional separatortoken
+ if ( @tokens && $tokens[0]->isa("SeparatorToken") ) {
shift @tokens;
}
}
@@ -110,7 +110,7 @@ sub tokenize ( $input) {
my $cur = substr( $input, $pos, 1 );
if ( $cur =~ m/\|/ ) {
- push @tokens, SeperatorToken->new($pos);
+ push @tokens, SeparatorToken->new($pos);
$pos += 1;
}
elsif ( $cur =~ m/\*/ ) {
@@ -164,7 +164,7 @@ package PlaceHolderToken {
}
}
-package SeperatorToken {
+package SeparatorToken {
use base 'TokenType';
sub new ( $class, $pos ) {
diff --git a/challenge-151/alexander-pankoff/perl/ch-2.pl b/challenge-151/alexander-pankoff/perl/ch-2.pl
index 8fb1634a84..e86839a890 100755
--- a/challenge-151/alexander-pankoff/perl/ch-2.pl
+++ b/challenge-151/alexander-pankoff/perl/ch-2.pl
@@ -29,31 +29,24 @@ no warnings qw'experimental::signatures';
use List::Util qw(all reduce sum0);
-use Data::Dumper;
-
run() unless caller();
sub run() {
my @valuables = @ARGV;
die "Invalid input\n" unless all { m/^-?\d+$/ } @valuables;
- rob_house(@valuables);
-
+ say rob_house(@valuables);
}
sub rob_house (@valuables) {
- my @tours = plan_tour($#valuables);
+ my @tours = plan_tours($#valuables);
my $best_tour = reduce sub {
my @tour = @$b;
my $tour_value = sum0 map { $valuables[$_] } @tour;
- if ( $tour_value > $a->{value} ) {
- return {
- value => $tour_value,
- tour => [@tour],
- };
- }
- if ( $tour_value == $a->{value} && @tour < @{ $a->{tour} } ) {
+ if ( $tour_value > $a->{value}
+ || $tour_value == $a->{value} && @tour < @{ $a->{tour} } )
+ {
return {
value => $tour_value,
tour => [@tour],
@@ -64,14 +57,14 @@ sub rob_house (@valuables) {
}, { value => 0, tour => [] }, @tours;
- print Dumper $best_tour;
+ return $best_tour->{value};
}
-sub plan_tour ( $max, $cur = 0 ) {
+sub plan_tours ( $max, $cur = 0 ) {
return [] if $cur > $max;
my @paths = (
- ( map { [ $cur, @$_ ] } plan_tour( $max, $cur + 2 ) ),
- plan_tour( $max, $cur + 1 )
+ ( map { [ $cur, @$_ ] } plan_tours( $max, $cur + 2 ) ),
+ plan_tours( $max, $cur + 1 )
);
return @paths;
diff --git a/challenge-152/alexander-pankoff/blog1.txt b/challenge-152/alexander-pankoff/blog1.txt
new file mode 100644
index 0000000000..0d532d065e
--- /dev/null
+++ b/challenge-152/alexander-pankoff/blog1.txt
@@ -0,0 +1 @@
+https://pankoff.net/pages/perl-weekly-challenge/challenge-152-task-1.html \ No newline at end of file
diff --git a/challenge-152/alexander-pankoff/blog2.txt b/challenge-152/alexander-pankoff/blog2.txt
new file mode 100644
index 0000000000..5777c4e9de
--- /dev/null
+++ b/challenge-152/alexander-pankoff/blog2.txt
@@ -0,0 +1 @@
+https://pankoff.net/pages/perl-weekly-challenge/challenge-152-task-2.html \ No newline at end of file