Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const data = [
- [151, 671, 11, 15],
- [887, 913, 28, 22],
- ] // etc
- // get size of square
- const longest = data.reduce((acc, arr) => {
- const x = arr[0] + arr[2];
- const y = arr[1] + arr[3];
- const longerCoord = x > y ? x : y;
- return acc > longerCoord ? acc : longerCoord;
- }, 0)
- // pt 1
- const square = new Array(longest + 1).fill(new Array(longest + 1).fill(0))
- const applyCoordsToSquare = (square, coords) => {
- return square.map((row, i) => {
- if (coords[1] <= i && i < (coords[1] + coords[3])) {
- return row.map((point, i) => {
- if (coords[0] <= i && (i < coords[0] + coords[2])) {
- return point + 1;
- }
- return point;
- })
- }
- return row
- })
- }
- const filledSquare = data.reduce(applyCoordsToSquare, square);
- const totalOverlapping = filledSquare.reduce((acc, row) => acc + row.reduce((acc, point) => point > 1 ? acc + 1 : acc, 0), 0)
Add Comment
Please, Sign In to add comment