diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-02-18 14:32:40 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-18 14:32:40 +0000 |
| commit | 6f0650dbeebde1d8f8012f8791b5f805625e5d2e (patch) | |
| tree | 197478583acd2fde7568e91cbb825ab1adde2b84 | |
| parent | 85ff80122f99cca4e533fbd70d02fcb931e68f9e (diff) | |
| parent | 4e46d56e1c2475753fa986e91332dae3f4dc5ab3 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-151/alexander-pankoff/blog2.txt | 1 | ||||
| -rwxr-xr-x | challenge-151/alexander-pankoff/perl/ch-1.pl | 10 | ||||
| -rwxr-xr-x | challenge-151/alexander-pankoff/perl/ch-2.pl | 25 | ||||
| -rw-r--r-- | challenge-152/alexander-pankoff/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-152/alexander-pankoff/blog2.txt | 1 |
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 |
