Skip to content

Commit 4a98a14

Browse files
author
Kevin Nguyen
committed
code for chapter 8 in javascript
1 parent d41a255 commit 4a98a14

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
// You pass an array in, and it gets converted to a set.
4+
let states_needed = new Set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"]);
5+
6+
const stations = {};
7+
stations["kone"] = new Set(["id", "nv", "ut"]);
8+
stations["ktwo"] = new Set(["wa", "id", "mt"]);
9+
stations["kthree"] = new Set(["or", "nv", "ca"]);
10+
stations["kfour"] = new Set(["nv", "ut"]);
11+
stations["kfive"] = new Set(["ca", "az"]);
12+
13+
const final_stations = new Set();
14+
15+
16+
while (states_needed.size) {
17+
let best_station = null;
18+
let states_covered = new Set();
19+
for (let station in stations) {
20+
let states = stations[station];
21+
let covered = new Set([...states_needed].filter((x) => states.has(x)));
22+
if (covered.size > states_covered.size) {
23+
best_station = station;
24+
states_covered = covered;
25+
}
26+
}
27+
states_needed = new Set([...states_needed].filter((x) => !states_covered.has(x)));
28+
final_stations.add(best_station);
29+
}
30+
31+
console.log(final_stations); // Set { 'kone', 'ktwo', 'kthree', 'kfive' }

0 commit comments

Comments
 (0)