-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathday09_butts.js
38 lines (34 loc) · 954 Bytes
/
day09_butts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const input = require("fs")
.readFileSync("day09_input.txt")
.toString()
.split("\r\n")
let uniqueCities = new Set()
let distanceMap = []
input.forEach((line) => {
let [city1, _1, city2, _2, distance] = line.split(" ")
uniqueCities.add(city1)
uniqueCities.add(city2)
distanceMap.push({ city1: city1, city2: city2, miles: parseInt(distance) })
})
const findAllRoutes = (cities) => {
let allRoutes = []
const buildRoute = (cities) => {
let citiesLeft = [...cities]
console.log(`1: ${citiesLeft}`)
let route = []
//base case
if (citiesLeft.length === 0) {
allRoutes.push(route)
} else {
for (let i = 0; i < citiesLeft.length; i++) {
route.push(citiesLeft[i])
citiesLeft.splice(i)
console.log({ citiesLeft }, { route })
console.log(`${i} : ${cities}`)
buildRoute(citiesLeft)
}
}
}
return allRoutes
}
console.log(findAllRoutes([...uniqueCities]))