From cfd4264b65cc7b38c99b0f28f692cd4e359b7722 Mon Sep 17 00:00:00 2001 From: Alexander Pankoff Date: Fri, 18 Feb 2022 14:04:18 +0100 Subject: Fix Typo in challenge 151 It's Separator not Seperator --- challenge-151/alexander-pankoff/perl/ch-1.pl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 ) { -- cgit From 3f44c11807d4a55fbe1a3cbb1ed77361b0ed192a Mon Sep 17 00:00:00 2001 From: Alexander Pankoff Date: Fri, 18 Feb 2022 14:47:48 +0100 Subject: Minor improvements to challenge 151 task 2 --- challenge-151/alexander-pankoff/perl/ch-2.pl | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) 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; -- cgit From d44d41712b8af86658c72a133d65fe14f96344d3 Mon Sep 17 00:00:00 2001 From: Alexander Pankoff Date: Fri, 18 Feb 2022 15:22:14 +0100 Subject: Add blog posts for challenge 151 --- challenge-151/alexander-pankoff/blog1.txt | 1 + challenge-151/alexander-pankoff/blog2.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 challenge-151/alexander-pankoff/blog1.txt create mode 100644 challenge-151/alexander-pankoff/blog2.txt 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 -- cgit From 4e46d56e1c2475753fa986e91332dae3f4dc5ab3 Mon Sep 17 00:00:00 2001 From: Alexander Pankoff Date: Fri, 18 Feb 2022 15:22:25 +0100 Subject: Add blog posts for challenge 152 --- challenge-152/alexander-pankoff/blog1.txt | 1 + challenge-152/alexander-pankoff/blog2.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 challenge-152/alexander-pankoff/blog1.txt create mode 100644 challenge-152/alexander-pankoff/blog2.txt 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 -- cgit