all done
This commit is contained in:
1000
day20/input.txt
Normal file
1000
day20/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
15
day20/part1.js
Normal file
15
day20/part1.js
Normal file
@ -0,0 +1,15 @@
|
||||
var input = require("fs").readFileSync("input.txt").toString();
|
||||
var inputjson = "[{" + input.replace(/([a-z])=</g, "\"$1\": [").replace(/>/g, "]").replace(/\n/g, "},\n{").slice(0,-3) + "]";
|
||||
var objects = JSON.parse(inputjson);
|
||||
for(var i = 0; i < 1000; i++){
|
||||
objects = objects.map(o=>{
|
||||
o.v = o.v.map((v,x)=>(v + o.a[x]));
|
||||
o.p = o.p.map((p,x)=>(p + o.v[x]));
|
||||
return o;
|
||||
});
|
||||
}
|
||||
var locations = objects.map(o=>(o.p));
|
||||
var distances = locations.map((a)=>(a.map((b)=>(Math.abs(b))).reduce((b,c)=>(b+c))));
|
||||
var maxdist = Math.min.apply(null, distances);
|
||||
console.log(maxdist);
|
||||
console.log(distances.indexOf(maxdist));
|
14
day20/part2.js
Normal file
14
day20/part2.js
Normal file
@ -0,0 +1,14 @@
|
||||
var input = require("fs").readFileSync("input.txt").toString();
|
||||
var inputjson = "[{" + input.replace(/([a-z])=</g, "\"$1\": [").replace(/>/g, "]").replace(/\n/g, "},\n{").slice(0,-3) + "]";
|
||||
var objects = JSON.parse(inputjson);
|
||||
for(var i = 0; i < 10000; i++){
|
||||
objects = objects.map(o=>{
|
||||
o.v = o.v.map((v,x)=>(v + o.a[x]));
|
||||
o.p = o.p.map((p,x)=>(p + o.v[x]));
|
||||
return o;
|
||||
});
|
||||
var locations = objects.map(o=>(o.p));
|
||||
var locationsStr = locations.map((a)=>(a.join(",")));
|
||||
objects = objects.filter((a)=>(locationsStr.filter((b)=>(b==a.p.join(","))).length == 1));
|
||||
console.log(objects.length);
|
||||
}
|
Reference in New Issue
Block a user