Skip to content

Commit dcd730b

Browse files
committed
refactor: clean day 9 code
1 parent a3a390b commit dcd730b

File tree

4 files changed

+9
-70
lines changed

4 files changed

+9
-70
lines changed
Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,25 @@
11
package com.adventofcode.flashk.day09;
22

3-
import java.sql.Array;
43
import java.util.ArrayDeque;
54
import java.util.Deque;
65
import java.util.List;
76

87
public class DiskFragmenter {
98

10-
private static final char EMPTY = '.';
11-
private char[] diskMap;
12-
private char[] disk;
13-
private int lastBlockIndex = 0;
14-
private Deque<Integer> diskDeque = new ArrayDeque<>();
9+
private final Deque<Integer> diskDeque = new ArrayDeque<>();
1510

1611
public DiskFragmenter(List<String> inputs) {
17-
diskMap = inputs.get(0).toCharArray();
18-
disk = new char[diskMap.length*9];
12+
char[] diskMap = inputs.get(0).toCharArray();
1913

2014
int fileId = 0;
21-
15+
int lastBlockIndex = 0;
2216
for(int i = 0; i < diskMap.length; i++) {
2317
int blockSize = Character.getNumericValue(diskMap[i]);
18+
2419
for(int blockIndex = lastBlockIndex; blockIndex < lastBlockIndex + blockSize; blockIndex++) {
2520
if(i % 2 == 0) {
26-
disk[blockIndex] = Character.forDigit(fileId, 10);
2721
diskDeque.add(fileId);
2822
} else {
29-
disk[blockIndex] = EMPTY;
3023
diskDeque.add(-1);
3124
}
3225
}
@@ -39,15 +32,14 @@ public DiskFragmenter(List<String> inputs) {
3932

4033
}
4134

42-
public long solveA() {
43-
35+
public long solve() {
4436

4537
long result = 0;
4638
int index = 0;
4739
while(!diskDeque.isEmpty()) {
4840
int current = diskDeque.pollFirst();
4941
if(current != -1) {
50-
result += index * current;
42+
result += (long) index * current;
5143
index++;
5244
} else if(diskDeque.peekLast() != null){
5345
diskDeque.addFirst(diskDeque.pollLast());
@@ -58,39 +50,6 @@ public long solveA() {
5850

5951
}
6052

61-
public long solveB() {
62-
63-
return 0;
64-
}
65-
/*
66-
private long checksum() {
67-
long result = 0;
68-
int i = 0;
69-
while(disk[i] != EMPTY) {
70-
result += ((long) Character.getNumericValue(disk[i])*(long)i);
71-
i++;
72-
}
73-
74-
return result;
75-
}
76-
77-
private void moveToLeft(int blockIndex) {
78-
79-
char fileId = disk[blockIndex];
80-
boolean emptyFound = false;
81-
int i = 0;
82-
while(!emptyFound && i < blockIndex) {
83-
84-
if(disk[i] == EMPTY) {
85-
emptyFound = true;
86-
disk[blockIndex] = EMPTY;
87-
disk[i] = fileId;
88-
}
89-
90-
i++;
91-
}
92-
}
93-
*/
9453

9554

9655
}

src/main/java/com/adventofcode/flashk/day09/File.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
public class File {
77

8-
private static int maxIdFile = 0;
9-
108
private final int id;
119
@Getter
1210
private int startBlockIndex;

src/main/java/com/adventofcode/flashk/day09/Unallocated.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.adventofcode.flashk.day09;
22

3-
import lombok.Getter;
4-
53
public class Unallocated {
64

75
private int startBlockIndex;

src/test/java/com/adventofcode/flashk/day09/Day09Test.java

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.List;
44

5-
import org.junit.jupiter.api.Disabled;
65
import org.junit.jupiter.api.DisplayName;
76
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
87
import org.junit.jupiter.api.Order;
@@ -21,25 +20,10 @@
2120

2221
@DisplayName(TestDisplayName.DAY_09)
2322
@TestMethodOrder(OrderAnnotation.class)
24-
public class Day09Test extends PuzzleTest {
23+
class Day09Test extends PuzzleTest {
2524

2625
private static final String INPUT_FOLDER = TestFolder.DAY_09;
2726

28-
@Test
29-
@Order(1)
30-
@Tag(TestTag.PART_1)
31-
@Tag(TestTag.SAMPLE)
32-
@DisplayName(TestDisplayName.PART_ONE_SINGLE_SAMPLE)
33-
void testSolvePart1SingleSample() {
34-
35-
// Read input file
36-
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SINGLE_SAMPLE);
37-
38-
DiskFragmenter diskFragmenter = new DiskFragmenter(inputs);
39-
40-
//assertEquals(0L, diskFragmenter.solveA());
41-
42-
}
4327

4428
@Test
4529
@Order(1)
@@ -53,7 +37,7 @@ public void testSolvePart1Sample() {
5337

5438
DiskFragmenter diskFragmenter = new DiskFragmenter(inputs);
5539

56-
assertEquals(1928L, diskFragmenter.solveA());
40+
assertEquals(1928L, diskFragmenter.solve());
5741

5842
}
5943

@@ -69,7 +53,7 @@ public void testSolvePart1Input() {
6953

7054
DiskFragmenter diskFragmenter = new DiskFragmenter(inputs);
7155

72-
assertEquals(6310675819476L, diskFragmenter.solveA());
56+
assertEquals(6310675819476L, diskFragmenter.solve());
7357
}
7458

7559
@Test

0 commit comments

Comments
 (0)