Add files via upload
This commit is contained in:
parent
00160e54e5
commit
a74ecc7bcd
77
2018/Java/day01/Frequency.java
Normal file
77
2018/Java/day01/Frequency.java
Normal file
|
@ -0,0 +1,77 @@
|
|||
package day01;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.util.HashSet;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Frequency {
|
||||
|
||||
private HashSet<Integer> pastValues = new HashSet<Integer>();
|
||||
|
||||
private int frequency = 0;
|
||||
private boolean repeated;
|
||||
|
||||
public void setRepeated() {
|
||||
this.repeated = true;
|
||||
}
|
||||
|
||||
public boolean getRepeated() {
|
||||
return this.repeated;
|
||||
}
|
||||
|
||||
public void plusFrequency(int plus) {
|
||||
this.frequency += plus;
|
||||
}
|
||||
|
||||
public void minusFrequency(int minus) {
|
||||
this.frequency -= minus;
|
||||
}
|
||||
|
||||
public int getFrequency() {
|
||||
return this.frequency;
|
||||
}
|
||||
|
||||
public boolean compareHashSet(int number) {
|
||||
return !pastValues.add(number);
|
||||
}
|
||||
|
||||
public void parseFile(File file) {
|
||||
try {
|
||||
Scanner scanner = new Scanner(new BufferedReader(new FileReader(file)));
|
||||
|
||||
while(scanner.hasNext()) {
|
||||
String s = scanner.next();
|
||||
if (s.matches("(\\-)(\\d)+")) {
|
||||
this.minusFrequency(Integer.parseInt(s.substring(1)));
|
||||
} else {
|
||||
this.plusFrequency(Integer.parseInt(s.substring(1)));
|
||||
}
|
||||
if (compareHashSet(this.getFrequency())) {
|
||||
System.out.println("repeat: " + this.getFrequency());
|
||||
this.setRepeated();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println(e.toString() + " : " + e.getStackTrace().toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
File input = new File("src/day01/input.txt");
|
||||
|
||||
Frequency f = new Frequency();
|
||||
|
||||
while ( !f.getRepeated() ) {
|
||||
f.parseFile(input);
|
||||
System.out.println(f.getFrequency());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
1000
2018/Java/day01/input.txt
Normal file
1000
2018/Java/day01/input.txt
Normal file
File diff suppressed because it is too large
Load diff
66
2018/Java/day02/Checksum.java
Normal file
66
2018/Java/day02/Checksum.java
Normal file
|
@ -0,0 +1,66 @@
|
|||
package day02;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Checksum {
|
||||
|
||||
Map<Character,Integer> repeats = new HashMap<Character,Integer>();
|
||||
|
||||
int twos = 0;
|
||||
int threes = 0;
|
||||
|
||||
public void parseFile(File file) {
|
||||
try
|
||||
{
|
||||
Scanner scanner = new Scanner(new BufferedReader(new FileReader(file)));
|
||||
|
||||
while(scanner.hasNext()) {
|
||||
String s = scanner.next();
|
||||
|
||||
for (int i = 0; i < s.length(); i++ ) {
|
||||
char c = s.charAt(i);
|
||||
if (repeats.containsKey(c)) {
|
||||
int numberOfRepeats = repeats.get(c);
|
||||
repeats.put(c, ++numberOfRepeats);
|
||||
} else {
|
||||
repeats.put(c, 1);
|
||||
}
|
||||
}
|
||||
|
||||
boolean twoC = false;
|
||||
boolean threeC = false;
|
||||
for (int num : repeats.values()) {
|
||||
if (num == 2 && !twoC) {
|
||||
twos++;
|
||||
twoC = true;
|
||||
} else if (num == 3 && !threeC) {
|
||||
threes++;
|
||||
threeC = true;
|
||||
}
|
||||
}
|
||||
|
||||
repeats.clear();
|
||||
}
|
||||
|
||||
System.out.println(twos * threes);
|
||||
|
||||
scanner.close(); // close stream
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println(e.toString() + " : " + e.getStackTrace().toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Checksum chsm = new Checksum();
|
||||
File f = new File("src/day02/input.txt");
|
||||
|
||||
chsm.parseFile(f);
|
||||
}
|
||||
}
|
54
2018/Java/day02/Match.java
Normal file
54
2018/Java/day02/Match.java
Normal file
|
@ -0,0 +1,54 @@
|
|||
package day02;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Match {
|
||||
|
||||
ArrayList<String> container = new ArrayList<>();
|
||||
|
||||
public String parseFile(File file) {
|
||||
try
|
||||
{
|
||||
Scanner scanner = new Scanner(new BufferedReader(new FileReader(file)));
|
||||
|
||||
while(scanner.hasNext()) {
|
||||
String s = scanner.next();
|
||||
|
||||
for (int i=0; i < container.size(); i++) { // Iteration through strings already found
|
||||
String checked = container.get(i);
|
||||
|
||||
int discrepancy = 0; // differences found between strings
|
||||
for (int j = 0; j < s.length(); j++) { // iteration through new string
|
||||
if (!(s.charAt(j) == checked.charAt(j))) {
|
||||
discrepancy++;
|
||||
}
|
||||
}
|
||||
|
||||
if (discrepancy == 1) {
|
||||
System.out.println("FOUND STRINGS MATCH DELTA 1\n" + checked + "\n" + s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
container.add(s);
|
||||
}
|
||||
scanner.close(); // close stream
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println(e.toString() + " : " + e.getStackTrace().toString());
|
||||
}
|
||||
return "NULL";
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Match chsm = new Match();
|
||||
File f = new File("src/day02/input.txt");
|
||||
|
||||
chsm.parseFile(f);
|
||||
}
|
||||
}
|
250
2018/Java/day02/input.txt
Normal file
250
2018/Java/day02/input.txt
Normal file
|
@ -0,0 +1,250 @@
|
|||
auxwcbzrmdvpsjfgkrthnkioqm
|
||||
auxwcbzrmdvpsjfgbltonyijqe
|
||||
auxwcbzrmdfpsefgklthnoioqe
|
||||
auxwcbzrmdvpsjfgkluhnjisqe
|
||||
auxwcbzrmdvesjfgdzthnyioqe
|
||||
auxwcbzrmdvhsjfgklthnmijqe
|
||||
auxwcbzridvpsjfgkltxeyioqe
|
||||
ayxwcbzrgdvpsjfgklthiyioqe
|
||||
ajxwcbzrmdvpsjfgklkhnyiode
|
||||
auxwcbcrmdvpsjfqelthnyioqe
|
||||
auxwcbzrmsvpsjsgklthnyiope
|
||||
auxwcbzrmqvpsjzgklghnyioqe
|
||||
auxwcbzrmdvpsjtqklthxyioqe
|
||||
auxwcbzrmdopsjfdklthncioqe
|
||||
auxwcbzrmdvpsjfgkltmhyfoqe
|
||||
aixwcbzrmdvpsjfgllthdyeoqe
|
||||
vuxicbzrmdepsjfgklthnyioqe
|
||||
auxwcbbxmdkpsjfgklthnyioqe
|
||||
auxwcbzrgdvpsofaklthnyioqe
|
||||
auxycbzrmdvpsjfgklthnyuose
|
||||
aujwcbzrmdvprjfgkltcnyioqe
|
||||
auxwgbzrmdvpsjfgyzthnyioqe
|
||||
auxwcbzrmavpsjfgkltsnyiome
|
||||
auxwcbgrmdvpsjfgkdthnrioqe
|
||||
kuxwcbzrmdvpsyfgklthnyioue
|
||||
auxwcbzomdvpjdfgklthnyioqe
|
||||
auxwcbzrmdppsjfgklthvyifqe
|
||||
aunwubzrmdvpsjrgklthnyioqe
|
||||
auxwcbzrmoipsjfgklbhnyioqe
|
||||
auxwdbzrmdvpsjfgmlthnyioce
|
||||
auxwcbzjmsvpsjfiklthnyioqe
|
||||
auxwcbzrmwcpsjfcklthnyioqe
|
||||
auxwcbzfmdvprjfhklthnyioqe
|
||||
auxdcbzrgdvpsjfgklthnyxoqe
|
||||
wuxwbbzrmdvpsjfgklthnyiote
|
||||
auowcbjrmdvpsjfgklthnyfoqe
|
||||
auxwsbzrmdvpsjfglltcnyioqe
|
||||
quxwcbzrmdvpkjfgklthnyioqt
|
||||
vuxwcbzrudvpsjfgklthnyioqi
|
||||
puxwcbzrmdvgsjfgklthncioqe
|
||||
luxdcbzrmdvpsjfgkothnyioqe
|
||||
auxwcbzrmdvpsjfyklthfhioqe
|
||||
auxwcbqrmdvpsjfgkldhnyiote
|
||||
quxwcbzrmlvpsjfgklthnyioqi
|
||||
auxwcbzgmdvpsjfoklthnyiuqe
|
||||
auxwcbzrmdvpsbfgkltdjyioqe
|
||||
auxwcbzsmdrpsjfgklthpyioqe
|
||||
auxwcbzrmfvpsjfwklthnyiote
|
||||
auxbkpzrmdvpsjfgklthnyioqe
|
||||
auxwcbzrddvpsjfsklthnyroqe
|
||||
abxwcbzrmdvpsjfgkltdnyivqe
|
||||
awxwcbzrmvvpsjfgklthngioqe
|
||||
auxwcbzrmkvgsjfgkltcnyioqe
|
||||
auxwcbammdvpsjfgklthpyioqe
|
||||
auxwcbhrmdvpsjfgtlthnuioqe
|
||||
auxwcpzrmdvpbjogklthnyioqe
|
||||
auxwcbzrmdvpslfgklbhkyioqe
|
||||
auxwcbsrmdvpjjfgkldhnyioqe
|
||||
auxwcbzrmdqpsjfgauthnyioqe
|
||||
ydxwcbxrmdvpsjfgklthnyioqe
|
||||
auxwcbzrmdvpejfgklthnyyofe
|
||||
auxwchzrmxvpsjfgklthnyioqh
|
||||
auxwcbzrtdvpsjfgklxhnzioqe
|
||||
auxwcbyrmdvpsnfgklnhnyioqe
|
||||
auxwcbzrcdvpsjugklihnyioqe
|
||||
auxwcbzrddvpsjfgklhhnyiaqe
|
||||
aumwtbzrmdvpsjfgklthnyitqe
|
||||
auxucbzrmdvpsjfgklthwfioqe
|
||||
auxwcbzrmdvpzmfgkllhnyioqe
|
||||
auxwcbzrmdvpsjhgklthntiome
|
||||
buxwzbzrmdvpszfgklthnyioqe
|
||||
ouxwcbzsgdvpsjfgklthnyioqe
|
||||
auxwcbzrmdvpsjfskltgnyioqz
|
||||
auxwcbbrmdvpsjftklthnyioqu
|
||||
quxocbzrmdvpsjfgklthfyioqe
|
||||
acxwcbzrmdvpsjfgklfhnrioqe
|
||||
auxwcbzrmdnpsjfrkjthnyioqe
|
||||
wuxwybzrmdwpsjfgklthnyioqe
|
||||
auxwgbxrmdvpsjfghlthnyioqe
|
||||
atxwcbzrmdvnsjfgklthnyjoqe
|
||||
acxwcbzmmdvpsjfbklthnyioqe
|
||||
auxhcbzrmdvbsjbgklthnyioqe
|
||||
auxwlbzrfdvpsjfgxlthnyioqe
|
||||
auxwmbzrmdfpsjqgklthnyioqe
|
||||
auxwcbzrmdvpsgfgklahnyigqe
|
||||
auxwgbzrmdvpsjfgzldhnyioqe
|
||||
auxwcbzrmdvpydfgklthnyiohe
|
||||
auxwxbzrmdvpsjfsklchnyioqe
|
||||
auxqcbzrmdvpsjfgqlthnyiwqe
|
||||
auxwcozrmdvssbfgklthnyioqe
|
||||
auxvcczrmdvpsufgklthnyioqe
|
||||
auxwcbzrudvpsjfgklyhnyioxe
|
||||
aulwcbzrmdvpsjqgknthnyioqe
|
||||
auukcbzrmdvpsjfgklthtyioqe
|
||||
auxwcszimdvpsjfgklthnyigqe
|
||||
juxwcbzrbdvpsjfgklthnyboqe
|
||||
auxwcbzrmdvpjofgklthnyioqj
|
||||
auxwcbzrmdvpsjfgplfhnyione
|
||||
auxwcbzrmdhpsjfgkltknyeoqe
|
||||
luxwcqzrmdvpsjfgklthnbioqe
|
||||
uuxwcbzrmdvpsjfgkithnyiiqe
|
||||
auxwcbzrmdvpdjfgkrthnyeoqe
|
||||
auuwcbnrmdvpsjfgklthnjioqe
|
||||
auxwcnzrmdvpsjvgklthnyooqe
|
||||
auxwcbzcmdvpsjfcklthnyiose
|
||||
auxwcbzrldfpsjfgklthjyioqe
|
||||
auxwcizrmdvpsjfjklthnymoqe
|
||||
auxwcbtrmdvpsjfgtlphnyioqe
|
||||
amxwcbzrmdvksjfgklthnyiove
|
||||
auxwcbzrmdvpszfgkpthnyiuqe
|
||||
auxwcbzrmdvxdjfgkltqnyioqe
|
||||
auxwcbzrudvpsjfgklthnymiqe
|
||||
auxwcbirmdvfsjfgklmhnyioqe
|
||||
auwwcbzrndvprjfgklthnyioqe
|
||||
auxwcbormdgpsjfgklbhnyioqe
|
||||
auxwabzrmdupsjfgklthnyioqt
|
||||
auxvcbzrmdvpsjfgkltrmyioqe
|
||||
auxwcbzrmddpsjfsklthnyizqe
|
||||
auxwcczrmuvpyjfgklthnyioqe
|
||||
auxwcczrmdvpsnfgkpthnyioqe
|
||||
auxkcbzrmdvpsjfhklihnyioqe
|
||||
auxwcbzrmdvpsjfgklthnkijje
|
||||
auxwcbzcmdvpsjpgkldhnyioqe
|
||||
auxwcnzrudvpstfgklthnyioqe
|
||||
xuxwcbzrgdvusjfgklthnyioqe
|
||||
aaxwcbzrmdvpsjvgklthnyidqe
|
||||
auxwcbztmdvpsjfgklthnyhqqe
|
||||
auxwcbzrmfvpsjfgklthnyilfe
|
||||
auxwcbzrmdvksjfgklthjyioqq
|
||||
auxwcbzrmdzksjfgktthnyioqe
|
||||
auxwcbzrmfvpszfgklohnyioqe
|
||||
auxwckzamdvpsjfgklthnyioqs
|
||||
auxwcmzrhdvpsjfaklthnyioqe
|
||||
fuxwcbzrmdapsjfgklrhnyioqe
|
||||
avxwxbzrmdvpsjfgklthniioqe
|
||||
auxwubzrmevpsjfgkltpnyioqe
|
||||
fuxwcbzrgdvpsjfgklhhnyioqe
|
||||
duxwwbdrmdvpsjfgklthnyioqe
|
||||
audwcbzrmdvpnjcgklthnyioqe
|
||||
auxtcbzrmdvpsjmgklthnyyoqe
|
||||
aucwcbwrmdepsjfgklthnyioqe
|
||||
auxwcbzrudvpsjfpklthnyiose
|
||||
auxwcbzridvpsjfsklthxyioqe
|
||||
auxtcbzrmdvpscfgklyhnyioqe
|
||||
auxwcbzrmdvppjfgklthnyivee
|
||||
auxwdbzrmuvpskfgklthnyioqe
|
||||
auxwubzrmdvosjfgklthnyiope
|
||||
auxwcbzrmhnpsjfgklthnyimqe
|
||||
auxwcbzrmdqpwjfgkltpnyioqe
|
||||
auxwcbormdvpsjljklthnyioqe
|
||||
auxwcbzrmdjpsjfgkltjpyioqe
|
||||
auxwcbzrmdvpszfgklthkyizqe
|
||||
auxwcbzighvpsjfgklthnyioqe
|
||||
auxwcbzrmdlpsjfgcythnyioqe
|
||||
auxwcbzumdvpsjflklthnyimqe
|
||||
pdxwcbzrmdvpsjfgklthnyihqe
|
||||
auxwcbzrsdvpsjfgklhhvyioqe
|
||||
auxwcfzamdvpsjfgkmthnyioqe
|
||||
aexwcdzrmdvpsjogklthnyioqe
|
||||
auxxcbkrmavpsjfgklthnyioqe
|
||||
auxwcbzredvssjfgklthryioqe
|
||||
aupwqbzrmdvpsjfgklthnyioqc
|
||||
auxwcbzrmdvpkcagklthnyioqe
|
||||
auxwcbzrmdvwsbfgklthnlioqe
|
||||
aunwcbzxmdvhsjfgklthnyioqe
|
||||
auxwcbzrhddpsjfgklthnnioqe
|
||||
ouxwcbzrmdvtsifgklthnyioqe
|
||||
auxwcbzrmdqpsjfgklthnyfoqp
|
||||
auxwrbzrhdvpsjfgolthnyioqe
|
||||
auxwcbcqmdvpsjugklthnyioqe
|
||||
auxwcbzrqdvpsjhgklthnjioqe
|
||||
auxmcbzrmdvpsjfgmlthnyjoqe
|
||||
auxwcbzrmdvpsjfgzlthnycoqv
|
||||
auswcbzrmdvpsffgslthnyioqe
|
||||
auxwcbzrfdvpsjfrmlthnyioqe
|
||||
auxwcbzrmdvpsjngzlthnxioqe
|
||||
auxwcbzrmdvpsjfuqlthnyiyqe
|
||||
auxwzbzrrdvosjfgklthnyioqe
|
||||
auxwcbzdmdvpsjfikxthnyioqe
|
||||
guxwcbzrmdvpsjfgmlthnytoqe
|
||||
auxwcbzrmdvpspfgkytenyioqe
|
||||
auxvcbzrldvpsjfgklthnyhoqe
|
||||
auxwcbzrmavpckfgklthnyioqe
|
||||
autwcbzrmdvpsafgklthnyirqe
|
||||
auxwcbzrxuvpsjfgklthmyioqe
|
||||
auxwcbarmdppsjfgklthnywoqe
|
||||
anxvcbzrmdvpsjfgklthnyijqe
|
||||
auxwcbwrmdapsjngklthnyioqe
|
||||
abxwcbzrmdvpsjugkltgnyioqe
|
||||
auxwcbtrmdvpsjfgkltunyioue
|
||||
aujwcbzrmovpsjfgklthryioqe
|
||||
auxwcbzrydvpsjfgklthndikqe
|
||||
auxwcbzrmdvpsjfgklmrnyioqo
|
||||
auxwcbzrddvpsjfggithnyioqe
|
||||
auxwcbzrmdvpfjfaklthlyioqe
|
||||
fuxtcbzrmdvpsjfgklwhnyioqe
|
||||
tuxwcbzrjdvpsjfgjlthnyioqe
|
||||
auxwcbzrmdppsofgklthnyfoqe
|
||||
auxvclzamdvpsjfgklthnyioqe
|
||||
auxwcbzrmdvpsjfdklhhnzioqe
|
||||
auxwcbzrmsvpsvdgklthnyioqe
|
||||
arxfcbzrmdvpsvfgklthnyioqe
|
||||
auxzcbzrmdvpsjfgklthnhioqj
|
||||
auxwcbzrrdvpsjfgpltunyioqe
|
||||
auxuibzrmdvpwjfgklthnyioqe
|
||||
auxwcbzrwdqpsjfgklthnyooqe
|
||||
aujwcbzrmdvpsjvgklthxyioqe
|
||||
abxwcbzrmfvpsjfgklthnyxoqe
|
||||
aurwcbzrmdvpshfgklthnyhoqe
|
||||
auxwcbzjmdvpsjfgknthnycoqe
|
||||
auxwcbzrmdvpsjfgklmhxwioqe
|
||||
auxwcbzrmfvpsjfgklthnyiorq
|
||||
auxwcbormdvpsjfgklwhnlioqe
|
||||
auxwctzrmdvpsjfgklcknyioqe
|
||||
awxwcbzrmdvpsjfgvlthnyiome
|
||||
auxwcbzrmdvpsjfjklthnyixje
|
||||
auxwcsxrmdvpsjfgkltsnyioqe
|
||||
auxbmbzrmdvpsjfgklthnyioce
|
||||
auxwcbzrmdvpsjfukzthnytoqe
|
||||
aixwcbzrmdvpsjfgllthdyioqe
|
||||
auxwcbzrmdypsjfgklthnlioqy
|
||||
auxccbzrmdvpsjfgkltrnnioqe
|
||||
auxwcznrmdvpsjfgklthnykoqe
|
||||
auxwmqzrmdvpsjfgilthnyioqe
|
||||
auxwcbzrmdvpdyfgolthnyioqe
|
||||
auxwcbzrmdvpsjfgkmohnqioqe
|
||||
auxwcfzrmzvpsjfoklthnyioqe
|
||||
auxwjyzrmdvpsjfgulthnyioqe
|
||||
auxwcgzredvpsjfgkxthnyioqe
|
||||
wuxwcbtrmdvpsjfgklthnyiofe
|
||||
auxwcbzrmdopsgfgklthncioqe
|
||||
auxmcbzjmdvpsjfgklbhnyioqe
|
||||
auxwlbzrmdvpsjffklthgyioqe
|
||||
auxwcbzrmrvpsjfgqlthtyioqe
|
||||
kuxwhbzrmdvpsjfgklthgyioqe
|
||||
auxwcozrmdgpsjfgklthnydoqe
|
||||
auxwdbzrmdvpdjfgklthgyioqe
|
||||
auxwqbzrmdapsvfgklthnyioqe
|
||||
auqwcbzridvjsjfgklthnyioqe
|
||||
auxwckzrmdvpsjfoklthnyuoqe
|
||||
auxwcbzvmdvpsjfgklghnyiome
|
||||
auxtcbzrmdvpsjqgktthnyioqe
|
||||
auxwcbzrmdvesjfgkljhnnioqe
|
||||
auxwcbzrmpvpsqfgklthnqioqe
|
||||
auxwcbzrmdcpsqfgklthnzioqe
|
||||
yuxwcbzrmdvpsjggklthnlioqe
|
||||
auxwcbzradvpsjftklthoyioqe
|
||||
auxwcbzrmdvjujfgklmhnyioqe
|
||||
auxwcbzrmdvpsrfgklpinyioqe
|
||||
auxwobzrvqvpsjfgklthnyioqe
|
90
2018/Java/day03/Claim.java
Normal file
90
2018/Java/day03/Claim.java
Normal file
|
@ -0,0 +1,90 @@
|
|||
package day03;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author kam
|
||||
*
|
||||
* Solution to task 2
|
||||
*
|
||||
*/
|
||||
public class Claim {
|
||||
|
||||
boolean overlapped;
|
||||
|
||||
int id;
|
||||
int marginleft;
|
||||
int margintop;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
public Claim(int id, int marginleft, int margintop, int width, int height) {
|
||||
this.id = id;
|
||||
this.marginleft = marginleft;
|
||||
this.margintop = margintop;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
public void assignClaim(Claim[][] canvas) {
|
||||
for (int i=0; i < width; i++) {
|
||||
for (int j=0; j < height; j++) {
|
||||
if (canvas[marginleft + i][margintop + j] == null) {
|
||||
canvas[marginleft + i][margintop + j] = this;
|
||||
} else {
|
||||
canvas[marginleft + i][margintop + j].overlapped = true;
|
||||
this.overlapped = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ArrayList<Claim> array = new ArrayList<>();
|
||||
Claim[][] canvas = new Claim[1000][1000];
|
||||
|
||||
try
|
||||
{
|
||||
Scanner scanner = new Scanner(new BufferedReader(new FileReader(new File("src/day03/input.txt"))));
|
||||
|
||||
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",""));
|
||||
|
||||
Claim generatedClaim = new Claim(id, coordx, coordy, height, length);
|
||||
generatedClaim.assignClaim(canvas);
|
||||
array.add(generatedClaim);
|
||||
|
||||
}
|
||||
scanner.close(); // close stream
|
||||
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println(e.toString() + " : " + e.getStackTrace().toString());
|
||||
}
|
||||
|
||||
for(Claim claim : array) {
|
||||
if (claim.overlapped == false) {
|
||||
System.out.println("Not overlapped: " + claim.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
69
2018/Java/day03/Overlap.java
Normal file
69
2018/Java/day03/Overlap.java
Normal file
|
@ -0,0 +1,69 @@
|
|||
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);
|
||||
}
|
||||
|
||||
}
|
1353
2018/Java/day03/input.txt
Normal file
1353
2018/Java/day03/input.txt
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue