aboutsummaryrefslogtreecommitdiff
path: root/challenge-151
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-02-11 19:03:13 +0000
committerGitHub <noreply@github.com>2022-02-11 19:03:13 +0000
commitfa25a66ed49c87602a02cd13177f04b5f5ecb2a5 (patch)
tree4bc0b8ff1d3a2a3f6ea33b911a55eb98b0851a53 /challenge-151
parent7ad2388ec991515830ba5a7f7cf4d43d69faaca5 (diff)
parent6a4a6ce3bda463a34714c7c707b2caa26d93e571 (diff)
downloadperlweeklychallenge-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.md3
-rw-r--r--challenge-151/abigail/bc/ch-2.bc37
-rw-r--r--challenge-151/abigail/java/ch-2.java30
-rw-r--r--challenge-151/abigail/t/ctest.ini3
-rw-r--r--challenge-151/abigail/tcl/ch-2.tcl20
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]]
+}