summaryrefslogtreecommitdiffstats
path: root/day5/day5-2.js
diff options
context:
space:
mode:
Diffstat (limited to 'day5/day5-2.js')
-rw-r--r--day5/day5-2.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/day5/day5-2.js b/day5/day5-2.js
new file mode 100644
index 0000000..8d29b96
--- /dev/null
+++ b/day5/day5-2.js
@@ -0,0 +1,28 @@
+const data = require('./data')
+const filterPlaces = (pass, entity, mark, min, max) => (
+ pass.forEach((p, i) => {
+ if (i > min && i <= max) {
+ p === mark
+ ? entity.splice(entity.length / 2, entity.length)
+ : entity.splice(0, entity.length / 2)
+ }
+ })
+)
+
+const checkId = (p) => {
+ const pass = p.split('')
+ const row = [...Array(128).keys()]
+ const column = [...Array(8).keys()]
+
+ filterPlaces(pass, row, 'F', -1, 6)
+ filterPlaces(pass, column, 'L', 6, 9)
+
+ return ID = row[0] * 8 + column[0]
+}
+
+const ids = [...data].map(checkId).sort((a, b) => (a-b))
+const missing = ids.filter((id, i) => ids[i] + 1 !== ids[i + 1]
+ && id !== ids[ids.length-1] )[0] + 1
+
+console.log(missing)
+