Big update: Adding all advent of codes to same repo
This commit is contained in:
BIN
AdventOfCode2015/day16/Aunt.class
Normal file
BIN
AdventOfCode2015/day16/Aunt.class
Normal file
Binary file not shown.
BIN
AdventOfCode2015/day16/Main.class
Normal file
BIN
AdventOfCode2015/day16/Main.class
Normal file
Binary file not shown.
118
AdventOfCode2015/day16/Main.java
Normal file
118
AdventOfCode2015/day16/Main.java
Normal file
@@ -0,0 +1,118 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
|
||||
File myFile = new File("day16.txt");
|
||||
Scanner in = new Scanner(myFile);
|
||||
int index = 1;
|
||||
|
||||
while (in.hasNext()) {
|
||||
|
||||
String[] input = in.nextLine().replaceAll("\\s+", "").split(":");
|
||||
|
||||
Map<String, Integer> currentAunt = new HashMap<>();
|
||||
|
||||
String[] secondLineSplit = input[2].split(",");
|
||||
String[] thirdLineSplit = input[3].split(",");
|
||||
|
||||
currentAunt.put(input[1], Integer.parseInt(secondLineSplit[0]));
|
||||
currentAunt.put(secondLineSplit[1], Integer.parseInt(thirdLineSplit[0]));
|
||||
currentAunt.put(thirdLineSplit[1], Integer.parseInt(input[4]));
|
||||
|
||||
int counter = 0;
|
||||
int part2counter = 0;
|
||||
|
||||
for (String key : currentAunt.keySet()) {
|
||||
|
||||
switch (key) {
|
||||
case "children":
|
||||
if (currentAunt.get(key) == 3) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "cats":
|
||||
if (currentAunt.get(key) == 7) {
|
||||
counter++;
|
||||
}
|
||||
if (currentAunt.get(key) > 7) {
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "samoyeds":
|
||||
if (currentAunt.get(key) == 2) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "pomeranians":
|
||||
if (currentAunt.get(key) == 3) {
|
||||
counter++;
|
||||
}
|
||||
if (currentAunt.get(key) < 3) {
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "akitas":
|
||||
if (currentAunt.get(key) == 0) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "vizslas":
|
||||
if (currentAunt.get(key) == 0) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "goldfish":
|
||||
if (currentAunt.get(key) == 5) {
|
||||
counter++;
|
||||
}
|
||||
if (currentAunt.get(key) < 5) {
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "trees":
|
||||
if (currentAunt.get(key) == 3) {
|
||||
counter++;
|
||||
}
|
||||
if (currentAunt.get(key) > 3) {
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "cars":
|
||||
if (currentAunt.get(key) == 2) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
case "perfumes":
|
||||
if (currentAunt.get(key) == 1) {
|
||||
counter++;
|
||||
part2counter++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (counter == 3) {
|
||||
System.out.printf("Part 1: %d \n", index);
|
||||
} else if (part2counter == 3) {
|
||||
System.out.printf("Part 2: %d \n", index);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
in.close();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user