Browse Source

day 5 complete

karl.hudgell 3 years ago
parent
commit
07809d6a7b
2 changed files with 47 additions and 78 deletions
  1. 2 2
      .vscode/launch.json
  2. 45 76
      Day 5/part1_2.js

+ 2 - 2
.vscode/launch.json

@@ -70,11 +70,11 @@
         {
             "type": "node",
             "request": "launch",
-            "name": "Day5-part1",
+            "name": "Day5-part1&2",
             "skipFiles": [
                 "<node_internals>/**"
             ],
-            "program": "${workspaceFolder}\\Day 5\\part1.js"
+            "program": "${workspaceFolder}\\Day 5\\part1_2.js"
         }
     ]
 }

+ 45 - 76
Day 5/part1.js → Day 5/part1_2.js

@@ -893,87 +893,56 @@ function splitCharacters(line) {
 }
 
 const map = dataSet.map(splitCharacters);
-
 let answerArray = []
 
 map.forEach(element => {
-    
-let row = Array.from({ length: 128 }, (x, i) => i);
-let column = Array.from({ length: 8 }, (x, i) => i);
-let val
-    // item 1
-    if (element[0] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    // item 2
-    if (element[1] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[2] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[3] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[4] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[5] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[6] === 'F') {
-        val = row.length / 2
-        row = row.slice(0, val)
-    } else {
-        val = row.length / 2
-        row = row.slice(val, row.length)
-    }
-    if (element[7] === 'L') {
-        val = column.length / 2
-        column = column.slice(0, val)
-    } else {
-        val = column.length / 2
-        column = column.slice(val, column.length)
-    }
-    if (element[8] === 'L') {
-        val = column.length / 2
-        column = column.slice(0, val)
-    } else {
-        val = column.length / 2
-        column = column.slice(val, column.length)
+    function workOutRow(input) {
+        if (input === 'F') {
+            val = row.length / 2
+            row = row.slice(0, val)
+        } else {
+            val = row.length / 2
+            row = row.slice(val, row.length)
+        }
     }
-    if (element[9] === 'L') {
-        val = column.length / 2
-        column = column.slice(0, val)
-    } else {
-        val = column.length / 2
-        column = column.slice(val, column.length)
+
+    function workOutColumn(input) {
+        if (input === 'L') {
+            val = column.length / 2
+            column = column.slice(0, val)
+        } else {
+            val = column.length / 2
+            column = column.slice(val, column.length)
+        }
     }
+
+    let row = Array.from({ length: 128 }, (x, i) => i);
+    let column = Array.from({ length: 8 }, (x, i) => i);
+    let val
+
+    workOutRow(element[0])
+    workOutRow(element[1])
+    workOutRow(element[2])
+    workOutRow(element[3])
+    workOutRow(element[4])
+    workOutRow(element[5])
+    workOutRow(element[6])
+    workOutColumn(element[7])
+    workOutColumn(element[8])
+    workOutColumn(element[9])
     let answer = row[0] * 8 + column[0]
     answerArray.push(answer)
 })
-console.log(Math.max(...answerArray));
+console.log('Biggest ID= ' + Math.max(...answerArray));
+
+let k = answerArray.sort((a, b) => a - b)
+
+// Part 2
+const lodash = require('lodash')
+
+lodash.forEach(lodash.range(lodash.min(k), lodash.max(k)), (number, index) => {
+    if (lodash.findIndex(k, val => val == number) == -1) {
+        let answer = k[index] - 1
+        console.log('My Seat= ' + answer)
+    }
+})