Advertisement
Guest User

aoc2024 d1

a guest
Dec 1st, 2024
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.22 KB | None | 0 0
  1. package aoc2024;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.List;
  6.  
  7. import org.junit.jupiter.api.Test;
  8.  
  9. import aoc2024.ak.Fn;
  10. import aoc2024.ak.Parser;
  11.  
  12. public class D1 {
  13.  
  14.   @Test public void d1 () {
  15.     List<Long> left = new ArrayList<>();
  16.     List<Long> right = new ArrayList<>();
  17.     { // build left and right list from text file
  18.       List<String> lines = Fn.inputLinesTrimmed("d1.txt");
  19.       for (String line : lines) {
  20.         Parser p = new Parser(line);
  21.         left.add(p.parseLong());
  22.         p.eatAllWhitespace();
  23.         right.add(p.parseLong());
  24.       }
  25.     }
  26.     { // prepare for p1 (no effect on the outcome of p2)
  27.       left.sort(Long::compare);
  28.       right.sort(Long::compare);
  29.     }
  30.     { // p1
  31.       long p1 = 0L;
  32.       Fn.require(left.size() == right.size());
  33.       for (int i = 0; i < left.size(); i++) {
  34.         long l = left.get(i);
  35.         long r = right.get(i);
  36.         p1 += Math.abs(l - r);
  37.       }
  38.       System.out.println("p1: " + p1);
  39.     }
  40.     { // p2
  41.       long p2 = 0L;
  42.       for (Long l : left) {
  43.         long rf = Collections.frequency(right, l);
  44.         p2 += l * rf;
  45.       }
  46.       System.out.println("p2: " + p2);
  47.     }
  48.   }
  49.  
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement