File tree Expand file tree Collapse file tree 3 files changed +1090
-0
lines changed
main/java/net/leibi/adventofcode2024/day1
test/java/net/leibi/adventofcode2024/day1 Expand file tree Collapse file tree 3 files changed +1090
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments