diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-15 20:22:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-15 20:22:04 +0100 |
| commit | 7cffc5af03c03c15615cb5239ec05c822323bced (patch) | |
| tree | ea166b4f619103c81f065a1b729408df54741e71 | |
| parent | 55561cd33408f541714ea6df242bcedb0126deb5 (diff) | |
| parent | 97cabe50c3aff40b7d4e249f4b242db3a5c5b7fb (diff) | |
| download | perlweeklychallenge-club-7cffc5af03c03c15615cb5239ec05c822323bced.tar.gz perlweeklychallenge-club-7cffc5af03c03c15615cb5239ec05c822323bced.tar.bz2 perlweeklychallenge-club-7cffc5af03c03c15615cb5239ec05c822323bced.zip | |
Merge pull request #4265 from stuart-little/stuart-little_117_node
1st commit on 117_node
| -rwxr-xr-x | challenge-117/stuart-little/node/ch-1.js | 7 | ||||
| -rwxr-xr-x | challenge-117/stuart-little/node/ch-2.js | 23 |
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-117/stuart-little/node/ch-1.js b/challenge-117/stuart-little/node/ch-1.js new file mode 100755 index 0000000000..aef4d7bde9 --- /dev/null +++ b/challenge-117/stuart-little/node/ch-1.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node + +// run <script> <path-to-file> + +const fs=require('fs') +const nrs=fs.readFileSync(process.argv[2]).toString().split("\n").map(x => parseInt(x)).filter(x => x) +console.log((nrs.length+2)*(nrs.length+1)/2 - nrs.reduce((x,y) => x+y, 0)) diff --git a/challenge-117/stuart-little/node/ch-2.js b/challenge-117/stuart-little/node/ch-2.js new file mode 100755 index 0000000000..64bd9d8649 --- /dev/null +++ b/challenge-117/stuart-little/node/ch-2.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node + +// run <script> <number> + +let memo=[[''],['R','LH']] + +function crt(lst1, lst2) { + return lst1.flatMap(x => lst2.map(y => [x,y])) +} + +function mkPaths(size) { + if (size >= memo.length) { + res=mkPaths(size-1).map(x => 'R' + x) + res=[...Array(size).keys()] + .reduce( + (lst,ix) => lst.concat(crt(mkPaths(ix), mkPaths(size-1-ix)).map(([x,y]) => 'L'+x+'H'+y)), + res) + memo.push(res) + } + return memo[size] +} + +mkPaths(parseInt(process.argv[2])).forEach(x => console.log(x)) |
