Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package aoc2024;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import org.junit.jupiter.api.Test;
- import aoc2024.ak.Fn;
- import aoc2024.ak.Parser;
- public class D1 {
- @Test public void d1 () {
- List<Long> left = new ArrayList<>();
- List<Long> right = new ArrayList<>();
- { // build left and right list from text file
- List<String> lines = Fn.inputLinesTrimmed("d1.txt");
- for (String line : lines) {
- Parser p = new Parser(line);
- left.add(p.parseLong());
- p.eatAllWhitespace();
- right.add(p.parseLong());
- }
- }
- { // prepare for p1 (no effect on the outcome of p2)
- left.sort(Long::compare);
- right.sort(Long::compare);
- }
- { // p1
- long p1 = 0L;
- Fn.require(left.size() == right.size());
- for (int i = 0; i < left.size(); i++) {
- long l = left.get(i);
- long r = right.get(i);
- p1 += Math.abs(l - r);
- }
- System.out.println("p1: " + p1);
- }
- { // p2
- long p2 = 0L;
- for (Long l : left) {
- long rf = Collections.frequency(right, l);
- p2 += l * rf;
- }
- System.out.println("p2: " + p2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement