Skip to content

Commit e8c654b

Browse files
committed
2024 Day 1 part 1
1 parent ea494e2 commit e8c654b

File tree

3 files changed

+1090
-0
lines changed

3 files changed

+1090
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package net.leibi.adventofcode2024.day1;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class Day1 {
7+
8+
9+
public long part1(String input) {
10+
var lists = getListOfListsFromInput(input);
11+
return getSumOfDistances(lists.get(0), lists.get(1));
12+
}
13+
14+
15+
public List<List<Integer>> getListOfListsFromInput(String input) {
16+
var left = new ArrayList<Integer>();
17+
var right = new ArrayList<Integer>();
18+
input.lines().forEach(line -> {
19+
final var split = line.split("\\s+");
20+
left.add(Integer.valueOf(split[0]));
21+
right.add(Integer.valueOf(split[1]));
22+
});
23+
24+
return List.of(left, right);
25+
}
26+
27+
public Integer getSumOfDistances(List<Integer> left, List<Integer> right) {
28+
if (left.size() != right.size()) throw new RuntimeException("list sizes differ");
29+
30+
left.sort(Integer::compareTo);
31+
right.sort(Integer::compareTo);
32+
33+
Integer sum = 0;
34+
for (var i = 0; i < left.size(); i++) {
35+
sum += Math.abs(left.get(i) - right.get(i));
36+
}
37+
38+
return sum;
39+
}
40+
41+
}

0 commit comments

Comments
 (0)