diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-08-31 00:39:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-31 00:39:31 +0100 |
| commit | 641fd5b76ae781ef51268a2f579395b8f51ade52 (patch) | |
| tree | 0596a11df6b001af30537618d46311c9b5404f4f | |
| parent | 42dfba4163bb20673ef668d0aea68b2cd2925146 (diff) | |
| parent | d9a9da2897a7dc1dd0f90c8438bbde176fb554a4 (diff) | |
| download | perlweeklychallenge-club-641fd5b76ae781ef51268a2f579395b8f51ade52.tar.gz perlweeklychallenge-club-641fd5b76ae781ef51268a2f579395b8f51ade52.tar.bz2 perlweeklychallenge-club-641fd5b76ae781ef51268a2f579395b8f51ade52.zip | |
Merge pull request #4825 from stuart-little/stuart-little_128_node
1st commit on 128_node
| -rwxr-xr-x | challenge-128/stuart-little/node/ch-1.js | 22 | ||||
| -rwxr-xr-x | challenge-128/stuart-little/node/ch-2.js | 15 |
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-128/stuart-little/node/ch-1.js b/challenge-128/stuart-little/node/ch-1.js new file mode 100755 index 0000000000..8524ef3786 --- /dev/null +++ b/challenge-128/stuart-little/node/ch-1.js @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +// run <script> <space-separated binary words, with one word representing each row> + +const {maxBy} = require('lodash') + +let [rows,cols]=[0,0] + +function mrg(s1,s2) { + return (parseInt(s1,2) | parseInt(s2,2)).toString(2).padStart(s1.length,0) +} + +for (let i=0; i < process.argv.slice(2).length; i++) { + for (let j=i; j < process.argv.slice(2).length; j++) { + let mx = maxBy([...process.argv.slice(2+i,3+j).reduce(mrg).matchAll(/(0+)/g)].map(x => x[0]), x => x.length) + if ((j-i+1) * mx.length > rows*cols) { + [rows,cols]=[j-i+1,mx.length] + } + } +} + +console.log(Array(rows).fill('0'.repeat(cols)).join("\n")) diff --git a/challenge-128/stuart-little/node/ch-2.js b/challenge-128/stuart-little/node/ch-2.js new file mode 100755 index 0000000000..f5b520df07 --- /dev/null +++ b/challenge-128/stuart-little/node/ch-2.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +// run <script> <starting arrivals followed by departures, all space-separated> + +const times = process.argv.slice(2).map((v,ix) => [v, ix % Math.floor(process.argv.slice(2).length/2)]).sort() +let sol=0 +let station = Array(Math.floor(process.argv.slice(2).length/2)).fill(0) + +times.forEach( tm => { + station[tm[1]]^=1 + let sm = station.reduce((a,b) => a+b, 0) + if (sm > sol) {sol = sm} +}) + +console.log(sol) |
