advent-of-code/2018/Java/day03/Overlap.java
2019-12-07 02:37:22 +01:00

70 lines
1.7 KiB
Java

package day03;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Scanner;
public class Overlap {
int[][] canvas = new int[1000][1000];
public String parseFile(File file) {
try
{
Scanner scanner = new Scanner(new BufferedReader(new FileReader(file)));
while(scanner.hasNextLine()) {
String s = scanner.nextLine();
int div1 = s.indexOf('@');
int div2 = s.indexOf(',');
int div3 = s.indexOf(':');
int div4 = s.indexOf('x');
int id = Integer.parseInt(s.substring(1, div1).replaceAll("\\s",""));
int coordx = Integer.parseInt(s.substring(div1+1, div2).replaceAll("\\s",""));
int coordy = Integer.parseInt(s.substring(div2+1, div3).replaceAll("\\s",""));
int height = Integer.parseInt(s.substring(div3+1, div4).replaceAll("\\s",""));
int length = Integer.parseInt(s.substring(div4+1).replaceAll("\\s",""));
System.out.println("" + id + "|" + coordx + "|" + coordy + "|" + height + "|" + length);
for (int i = 0; i < height; i++) {
for (int j = 0; j < length; j++) {
canvas[coordx + i][coordy + j]++;
}
}
}
scanner.close(); // close stream
int overlapped = 0;
for (int i = 0; i < canvas.length; i++) {
for (int j = 0; j < canvas[0].length; j++) {
if (canvas[i][j] > 1) {
overlapped++;
}
}
}
System.out.println(overlapped);
}
catch (Exception e) {
System.out.println(e.toString() + " : " + e.getStackTrace().toString());
}
return "NULL";
}
public static void main(String[] args) {
Overlap ovrlp = new Overlap();
File f = new File("src/day03/input.txt");
ovrlp.parseFile(f);
}
}