@@ 0,0 1,70 @@
+package ninja.scoopta.software.advent_of_code_12020;
+
+import java.util.*;
+import java.nio.file.*;
+import java.io.IOException;
+
+final class Day6 {
+ public static final void main(String[] args) {
+ try {
+ List<String> lines = Files.readAllLines(Paths.get("day6.txt"));
+ System.out.println("Part 1");
+ pt1(lines);
+ System.out.println("Part 2");
+ pt2(lines);
+ } catch(IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static final void pt1(List<String> lines) {
+ TreeSet<Character> answers = new TreeSet<>();
+ int yeses = 0;
+ for(String line : lines) {
+ if(line.equals("")) {
+ yeses += answers.size();
+ answers.clear();
+ continue;
+ }
+ for(char chr : line.toCharArray()) {
+ answers.add(chr);
+ }
+ }
+ yeses += answers.size();
+ System.out.println(yeses);
+ }
+
+ private static final void pt2(List<String> lines) {
+ TreeMap<Character, Integer> answers = new TreeMap<>();
+
+ int people = 0;
+ int yeses = 0;
+ for(String line : lines) {
+ if(line.equals("")) {
+ for(int count : answers.values()) {
+ if(count == people) {
+ ++yeses;
+ }
+ }
+ people = 0;
+ answers.clear();
+ continue;
+ }
+ ++people;
+ for(char chr : line.toCharArray()) {
+ Integer count = answers.get(chr);
+ if(count != null) {
+ answers.put(chr, ++count);
+ } else {
+ answers.put(chr, 1);
+ }
+ }
+ }
+ for(int count : answers.values()) {
+ if(count == people) {
+ ++yeses;
+ }
+ }
+ System.out.println(yeses);
+ }
+}