diff options
| author | Adam Russell <ac.russell@live.com> | 2021-02-21 13:27:59 -0500 |
|---|---|---|
| committer | Adam Russell <ac.russell@live.com> | 2021-02-21 13:27:59 -0500 |
| commit | cca2b3ff364d33d2f1986b3168f410b889d6d723 (patch) | |
| tree | 52e14dd33fe2ff521e3589c9d6d4ca9546331e06 | |
| parent | b6250b734379359ed435e880dd9585bd8b8e82dc (diff) | |
| download | perlweeklychallenge-club-cca2b3ff364d33d2f1986b3168f410b889d6d723.tar.gz perlweeklychallenge-club-cca2b3ff364d33d2f1986b3168f410b889d6d723.tar.bz2 perlweeklychallenge-club-cca2b3ff364d33d2f1986b3168f410b889d6d723.zip | |
initial commit
| -rw-r--r-- | challenge-100/adam-russell/blog.txt | 0 | ||||
| -rw-r--r-- | challenge-100/adam-russell/blog1.txt | 0 | ||||
| -rw-r--r-- | challenge-100/adam-russell/perl/ch-1.sh | 1 | ||||
| -rw-r--r-- | challenge-100/adam-russell/perl/ch-2.pl | 30 | ||||
| -rw-r--r-- | challenge-100/adam-russell/prolog/ch-1.p | 33 |
5 files changed, 64 insertions, 0 deletions
diff --git a/challenge-100/adam-russell/blog.txt b/challenge-100/adam-russell/blog.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/challenge-100/adam-russell/blog.txt diff --git a/challenge-100/adam-russell/blog1.txt b/challenge-100/adam-russell/blog1.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/challenge-100/adam-russell/blog1.txt diff --git a/challenge-100/adam-russell/perl/ch-1.sh b/challenge-100/adam-russell/perl/ch-1.sh new file mode 100644 index 0000000000..2529aad531 --- /dev/null +++ b/challenge-100/adam-russell/perl/ch-1.sh @@ -0,0 +1 @@ +perl -E 'shift=~/(\d+):(\d\d\s*(am|pm))/; $h=($1 < 12)?$1 + 12: $1; print "$h:$2\n"' "05:15 pm" diff --git a/challenge-100/adam-russell/perl/ch-2.pl b/challenge-100/adam-russell/perl/ch-2.pl new file mode 100644 index 0000000000..2e6e5ea2ac --- /dev/null +++ b/challenge-100/adam-russell/perl/ch-2.pl @@ -0,0 +1,30 @@ +use strict; +use warnings; +## +# Given a triangle array write a script to find +# the minimum path sum from top to bottom. +# When you are on index i on you may only +# move to either index i or i+1 on the next row. +# +sub minimum_sum{ + my(@triangle) = @_; + my($i, $j) = (0, 0); + my $sum = $triangle[0]->[0]; + while($i < @triangle){ + unless(!exists($triangle[$i+1])){ + $j = ($triangle[$i+1]->[$j] >= $triangle[$i+1]->[$j+1]) ? $j+1 : $j; + $sum += $triangle[$i+1]->[$j]; + } + $i++; + } + return $sum; +} + +MAIN:{ + my(@TRIANGLE); + @TRIANGLE = ([1], [2, 4], [6, 4, 9], [5, 1 , 7, 2]); + print minimum_sum(@TRIANGLE) . "\n"; + + @TRIANGLE =([3], [3, 1], [5, 2, 3], [4, 3, 1, 3]); + print minimum_sum(@TRIANGLE) . "\n"; +} diff --git a/challenge-100/adam-russell/prolog/ch-1.p b/challenge-100/adam-russell/prolog/ch-1.p new file mode 100644 index 0000000000..7df6c46e33 --- /dev/null +++ b/challenge-100/adam-russell/prolog/ch-1.p @@ -0,0 +1,33 @@ +:-initialization(main). + +hour_to_12(H12, H24):- + append(H, [58|R], H24), + number_codes(N0, H), + N is N0 - 12, + number_codes(N, C0), + flatten([C0, 58, R], C), + atom_codes(A, C), + H12 = A. + +hour_to_24(H12, H24):- + append(H, [58|R], H12), + number_codes(N0, H), + N is N0 + 12, + number_codes(N, C0), + flatten([C0, 58, R], C), + atom_codes(A, C), + H24 = A. + +twenty_four_hour(H12, H24):- + nonvar(H12), + hour_to_24(H12, H24). +twenty_four_hour(H12, H24):- + nonvar(H24), + hour_to_12(H12, H24). + +main:- + twenty_four_hour("05:15 pm", HOUR_24), + write(HOUR_24), nl, + twenty_four_hour(HOUR_12, "17:15 pm"), + write(HOUR_12), nl, + halt. |
