aboutsummaryrefslogtreecommitdiff
path: root/challenge-097
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-01-27 16:32:43 +0100
committerAbigail <abigail@abigail.be>2021-01-27 16:32:43 +0100
commit98186989bc5539fabdbaf4936b2dda608d833d0d (patch)
tree2210d2c321ef1968392b8b99ad5239ec1075ab29 /challenge-097
parent13a77a864078520a7df6a1638f37e07440e87250 (diff)
downloadperlweeklychallenge-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.md1
-rw-r--r--challenge-097/abigail/node/ch-2.js59
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)
+})
+;