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

67 lines
1.3 KiB
Java

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);
}
}