more days
This commit is contained in:
3
03/input-test.txt
Normal file
3
03/input-test.txt
Normal file
@ -0,0 +1,3 @@
|
||||
#1 @ 1,3: 4x4
|
||||
#2 @ 3,1: 4x4
|
||||
#3 @ 5,5: 2x2
|
1233
03/input.txt
Normal file
1233
03/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
18
03/part1.js
Normal file
18
03/part1.js
Normal file
@ -0,0 +1,18 @@
|
||||
var input = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>a);
|
||||
var sqs = input.map((a)=>(a.match(/#\d+ @ (\d+),(\d+): (\d+)x(\d+)/)).map(a=>(parseInt(a))).filter(a=>(a>=0)));
|
||||
|
||||
var xa = Math.min.apply(null, sqs.map(a=>(a[0])));
|
||||
var ya = Math.min.apply(null, sqs.map(a=>(a[1])));
|
||||
var xb = Math.max.apply(null, sqs.map(a=>(a[0]+a[2])));
|
||||
var yb = Math.max.apply(null, sqs.map(a=>(a[1]+a[3])));
|
||||
|
||||
var count = 0;
|
||||
for(var x = xa; x <= xb; x++){
|
||||
for(var y = ya; y <= yb; y++){
|
||||
if(sqs.filter(a=>( (a[0] <= x) && ((a[0] + a[2]) > x) && (a[1] <= y) && ((a[1]) + a[3]) > y)).length >= 2){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(count);
|
30
03/part2.js
Normal file
30
03/part2.js
Normal file
@ -0,0 +1,30 @@
|
||||
var input = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>a);
|
||||
var sqs = input.map((a)=>(a.match(/#\d+ @ (\d+),(\d+): (\d+)x(\d+)/)).map(a=>(parseInt(a))).filter(a=>(a>=0)));
|
||||
|
||||
function overlapa(a, b){
|
||||
xa1 = a[0]
|
||||
xa2 = a[0] + a[2] - 1;
|
||||
xb1 = b[0];
|
||||
xb2 = b[0] + b[2] - 1;
|
||||
|
||||
ya1 = a[1]
|
||||
ya2 = a[1] + a[3] - 1;
|
||||
yb1 = b[1];
|
||||
yb2 = b[1] + b[3] - 1;
|
||||
|
||||
return (
|
||||
(((xa1 >= xb1) && (xa1 <= xb2)) || ((xa2 >= xb1) && (xa2 <= xb2)))
|
||||
&&
|
||||
(((ya1 >= yb1) && (ya1 <= yb2)) || ((ya2 >= yb1) && (ya2 <= yb2)))
|
||||
)
|
||||
}
|
||||
|
||||
function overlap(a,b){
|
||||
return overlapa(a,b) || overlapa(b,a);
|
||||
}
|
||||
|
||||
for(var i in sqs){
|
||||
if(sqs.filter(sq=>(overlap(sq, sqs[i]))).length == 1){
|
||||
console.log(i + 1);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user