diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-02-11 19:03:13 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-11 19:03:13 +0000 |
| commit | fa25a66ed49c87602a02cd13177f04b5f5ecb2a5 (patch) | |
| tree | 4bc0b8ff1d3a2a3f6ea33b911a55eb98b0851a53 /challenge-151 | |
| parent | 7ad2388ec991515830ba5a7f7cf4d43d69faaca5 (diff) | |
| parent | 6a4a6ce3bda463a34714c7c707b2caa26d93e571 (diff) | |
| download | perlweeklychallenge-club-fa25a66ed49c87602a02cd13177f04b5f5ecb2a5.tar.gz perlweeklychallenge-club-fa25a66ed49c87602a02cd13177f04b5f5ecb2a5.tar.bz2 perlweeklychallenge-club-fa25a66ed49c87602a02cd13177f04b5f5ecb2a5.zip | |
Merge pull request #5640 from Abigail/abigail/week-151
Abigail/week 151
Diffstat (limited to 'challenge-151')
| -rw-r--r-- | challenge-151/abigail/README.md | 3 | ||||
| -rw-r--r-- | challenge-151/abigail/bc/ch-2.bc | 37 | ||||
| -rw-r--r-- | challenge-151/abigail/java/ch-2.java | 30 | ||||
| -rw-r--r-- | challenge-151/abigail/t/ctest.ini | 3 | ||||
| -rw-r--r-- | challenge-151/abigail/tcl/ch-2.tcl | 20 |
5 files changed, 93 insertions, 0 deletions
diff --git a/challenge-151/abigail/README.md b/challenge-151/abigail/README.md index 870c6804c1..7c068e4d4a 100644 --- a/challenge-151/abigail/README.md +++ b/challenge-151/abigail/README.md @@ -16,8 +16,10 @@ * [AWK](awk/ch-2.awk) * [Bash](bash/ch-2.sh) +* [bc](bc/ch-2.bc) * [C](c/ch-2.c) * [Go](go/ch-2.go) +* [Java](java/ch-2.java) * [Lua](lua/ch-2.lua) * [Node.js](node/ch-2.js) * [Pascal](pascal/ch-2.p) @@ -25,3 +27,4 @@ * [Python](python/ch-2.py) * [R](r/ch-2.r) * [Ruby](ruby/ch-2.rb) +* [Tcl](tcl/ch-2.tcl) diff --git a/challenge-151/abigail/bc/ch-2.bc b/challenge-151/abigail/bc/ch-2.bc new file mode 100644 index 0000000000..d4f479a047 --- /dev/null +++ b/challenge-151/abigail/bc/ch-2.bc @@ -0,0 +1,37 @@ +#!/usr/bin/bc + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-151 +# + +# +# Run as: bc ch-2.bc < input-file +# +# End each line of input with a 0 +# End input with a -1 + +while (1) { + n = read () + if (n < 0) { + break + } + sz = 0 + while (n > 0) { + h [sz] = n + sz = sz + 1 + n = read () + } + h [sz + 0] = 0 + h [sz + 1] = 0 + for (i = sz - i; i >= 2; i --) { + if (h [i] + h [i + 2] > h [i + 1]) { + h [i] = h [i] + h [i + 2] + } else { + h [i] = h [i + 1] + } + } + h [0] + h [2] +} + + +halt diff --git a/challenge-151/abigail/java/ch-2.java b/challenge-151/abigail/java/ch-2.java new file mode 100644 index 0000000000..98c27217d7 --- /dev/null +++ b/challenge-151/abigail/java/ch-2.java @@ -0,0 +1,30 @@ +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-151 +// + +// +// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file +// + +import java.util.*; + +public class ch2 { + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + while (scanner . hasNextLine ()) { + String line = scanner . nextLine (); + Scanner inner_scanner = new Scanner (line); + ArrayList <Integer> h = new ArrayList <Integer> (); + while (inner_scanner . hasNextInt ()) { + h . add (inner_scanner . nextInt ()); + } + h . add (0); + h . add (0); + for (int i = h . size () - 3; i >= 2; i --) { + h . set (i, Math . max (h . get (i) + h . get (i + 2), + h . get (i + 1))); + } + System . out . printf ("%d\n", h . get (0) + h . get (2)); + } + } +} diff --git a/challenge-151/abigail/t/ctest.ini b/challenge-151/abigail/t/ctest.ini index 0a8cb97d18..f2021a0482 100644 --- a/challenge-151/abigail/t/ctest.ini +++ b/challenge-151/abigail/t/ctest.ini @@ -7,3 +7,6 @@ 1-1 = Given Examples
2-1 = Given Examples
+[2-1/bc]
+add_to_line = 0
+add_to_input = -1
diff --git a/challenge-151/abigail/tcl/ch-2.tcl b/challenge-151/abigail/tcl/ch-2.tcl new file mode 100644 index 0000000000..591ac69870 --- /dev/null +++ b/challenge-151/abigail/tcl/ch-2.tcl @@ -0,0 +1,20 @@ +#!/usr/local/opt/tcl-tk/bin/tclsh + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-151 +# + +# +# Run as: tclsh ch-2.tcl < input-file +# + +while {[gets stdin line] >= 0} { + set h [split $line " "] + lappend h 0 0 + for {set i [expr [llength $h] - 3]} {$i >= 2} {incr i -1} { + set v1 [expr [lindex $h $i] + [lindex $h [expr $i + 2]]] + set v2 [lindex $h [expr $i + 1]] + lset h $i [expr $v1 < $v2 ? $v2 : $v1] + } + puts [expr [lindex $h 0] + [lindex $h 2]] +} |
