Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Day2 extends AdventOfCode {
- public Day2(List<String> input) {
- super(input);
- title = "Inventory Management System";
- part1Description = "Checksum: ";
- part2Description = "Common letters: ";
- }
- @Override
- public Object part1() {
- int twos = 0;
- int threes = 0;
- for (String each : input) {
- Map<Character, Integer> freq = new HashMap<>();
- boolean found2 = false;
- boolean found3 = false;
- for (int i = 0; i < each.length(); i++) {
- char c = each.charAt(i);
- freq.put(c, freq.getOrDefault(c, 0) + 1);
- }
- for (Map.Entry<Character, Integer> dict : freq.entrySet()) {
- if (!found2 && dict.getValue() == 2) {
- twos++;
- found2 = true;
- }
- if (!found3 && dict.getValue() == 3) {
- threes++;
- found3 = true;
- }
- }
- }
- return twos * threes;
- }
- @Override
- public Object part2() {
- for (int i = 0; i < input.size() - 1; i++) {
- for (int j = 1; j < input.size(); j++) {
- int dist = EditDistance.calculate(input.get(i), input.get(j));
- if (dist == 1) {
- return removeDiff(input.get(i), input.get(j));
- }
- }
- }
- return "";
- }
- private String removeDiff(String a, String b) {
- String result = "";
- for (int i = 0; i < a.length(); i++) {
- if (a.charAt(i) == b.charAt(i)) {
- result += a.charAt(i);
- }
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement