diff options
| author | Abigail <abigail@abigail.be> | 2021-01-27 16:32:43 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-01-27 16:32:43 +0100 |
| commit | 98186989bc5539fabdbaf4936b2dda608d833d0d (patch) | |
| tree | 2210d2c321ef1968392b8b99ad5239ec1075ab29 /challenge-097 | |
| parent | 13a77a864078520a7df6a1638f37e07440e87250 (diff) | |
| download | perlweeklychallenge-club-98186989bc5539fabdbaf4936b2dda608d833d0d.tar.gz perlweeklychallenge-club-98186989bc5539fabdbaf4936b2dda608d833d0d.tar.bz2 perlweeklychallenge-club-98186989bc5539fabdbaf4936b2dda608d833d0d.zip | |
Node.js solution for week 97, part 2
Diffstat (limited to 'challenge-097')
| -rw-r--r-- | challenge-097/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-097/abigail/node/ch-2.js | 59 |
2 files changed, 60 insertions, 0 deletions
diff --git a/challenge-097/abigail/README.md b/challenge-097/abigail/README.md index 4db89a1982..50e3627151 100644 --- a/challenge-097/abigail/README.md +++ b/challenge-097/abigail/README.md @@ -69,6 +69,7 @@ Binary Substrings: * [AWK](awk/ch-2.awk) * [C](c/ch-2.c) * [Lua](lua/ch-2.lua) +* [Node](node/ch-2.js) * [Perl](perl/ch-2.pl) ### Blog diff --git a/challenge-097/abigail/node/ch-2.js b/challenge-097/abigail/node/ch-2.js new file mode 100644 index 0000000000..c28c3fb2b8 --- /dev/null +++ b/challenge-097/abigail/node/ch-2.js @@ -0,0 +1,59 @@ +#!/usr/local/bin/node + +// +// See ../README.md +// + +// +// Run as: node ch-2.js -s SECTIONS < input-file +// + +const NR_OF_LETTERS = 26 + +// +// Parse input +// +const argv = require ('yargs') +. option ('s', { + type: 'number', + }) +. demandOption ('s') +. argv; + +const sections = argv . s + +// +// Iterate over the input +// +require ('readline') +. createInterface ({input: process . stdin}) +. on ('line', _ => { + let sum = 0 + let s_len = _ . length / sections // Length of a segment + // + // Iterate over the positions + // + for (let i = 0; i < s_len; i ++) { + // + // Count the number of zeros in a specific position + // + let zeros = 0 + for (let j = 0; j < sections; j ++) { + let index = j * s_len + i; + if (_ . substring (index, index + 1) == "0") { + zeros ++ + } + } + // + // Calculate the ones + // + let ones = sections - zeros + + // + // Add the minimum of the zeros and ones + // + sum += zeros < ones ? zeros : ones + } + console . log (sum) +}) +; |
