diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-02-07 23:07:38 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-02-07 23:07:38 +0100 |
| commit | dfe3d0c53a5e090bb2784fb9487463656fa72387 (patch) | |
| tree | 9f5af35342d5f78c3aff9da52c5af9d19f346785 | |
| parent | f1bc02f8fcc156205b2a8ccabaf0063f32ab8106 (diff) | |
| download | perlweeklychallenge-club-dfe3d0c53a5e090bb2784fb9487463656fa72387.tar.gz perlweeklychallenge-club-dfe3d0c53a5e090bb2784fb9487463656fa72387.tar.bz2 perlweeklychallenge-club-dfe3d0c53a5e090bb2784fb9487463656fa72387.zip | |
Week 151: Node.js solutions
| -rw-r--r-- | challenge-151/abigail/node/ch-1.js | 33 | ||||
| -rw-r--r-- | challenge-151/abigail/node/ch-2.js | 26 |
2 files changed, 59 insertions, 0 deletions
diff --git a/challenge-151/abigail/node/ch-1.js b/challenge-151/abigail/node/ch-1.js new file mode 100644 index 0000000000..bf67eda21e --- /dev/null +++ b/challenge-151/abigail/node/ch-1.js @@ -0,0 +1,33 @@ +#!/usr/local/bin/node + +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-151 +// + +// +// Run as: node ch-1.js < input-file +// + + require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', line => { + let tree = line . split ("\|") . map (row => row . trim () . split (/ +/)) + + for (let d = 0; d < tree . length; d ++) { + if (d == tree . length - 1) { + return + } + let c_row = tree [d] + let n_row = tree [d + 1] + for (let i = 0; i < c_row . length; i ++) { + let ch1 = 2 * i + let ch2 = 2 * i + 1 + if (c_row [i] != "*" && + (ch1 >= n_row . length || n_row [ch1] == "*") && + (ch2 >= n_row . length || n_row [ch2] == "*")) { + console . log (d + 1) + return; + } + } + } +}) diff --git a/challenge-151/abigail/node/ch-2.js b/challenge-151/abigail/node/ch-2.js new file mode 100644 index 0000000000..f4d698ec49 --- /dev/null +++ b/challenge-151/abigail/node/ch-2.js @@ -0,0 +1,26 @@ +#!/usr/local/bin/node + +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-151 +// + +// +// Run as: node ch-2.js < input-file +// + + require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', line => { + let houses = line . trim () . split (/ +/) . map (n => +n) + let best = [] + for (let i = houses . length - 1; i >= 0; i --) { + best [i] = + 2 > houses . length ? houses [i] + : i == houses . length - 1 ? houses [i] + : i == 0 ? houses [i] + best [i + 2] + : i == houses . length - 2 ? Math . max (houses [i], best [i + 1]) + : Math . max (houses [i] + best [i + 2], + best [i + 1]) + } + console . log (best [0]) +}) |
