From 574093f8fadfa2f87114014832eb66f149b08c50 Mon Sep 17 00:00:00 2001
From: Christopher Bohn <bohn@unl.edu>
Date: Fri, 9 Dec 2022 08:02:58 -0600
Subject: [PATCH] Added helper methods to convert data into common forms
---
2022/README.md | 18 ++++++++++++++++++
.../java/edu/unl/cse/bohn/year2022/Day8.java | 6 +-----
scaffolding/Puzzle.java | 17 +++++++++++++++++
3 files changed, 36 insertions(+), 5 deletions(-)
diff --git a/2022/README.md b/2022/README.md
index 6092a83..b0c0ae5 100644
--- a/2022/README.md
+++ b/2022/README.md
@@ -252,5 +252,23 @@ Well... I'm going to take the part 2 code in a (very) slightly different directi
## Day 9
+- [The problem](https://adventofcode.com/2022/day/9)
+- [The solution](src/main/java/edu/unl/cse/bohn/year2022/Day9.java)
+
+### Part 1
+
+The subproblems are
+- ...
+
+### Part 2
+
+...
+
+### Refactoring
+
+...
+
+## Day 10
+
(coming soon)
diff --git a/2022/src/main/java/edu/unl/cse/bohn/year2022/Day8.java b/2022/src/main/java/edu/unl/cse/bohn/year2022/Day8.java
index 35daf52..da581f8 100644
--- a/2022/src/main/java/edu/unl/cse/bohn/year2022/Day8.java
+++ b/2022/src/main/java/edu/unl/cse/bohn/year2022/Day8.java
@@ -39,11 +39,7 @@ public class Day8 extends Puzzle {
}
private static int[][] getTreeHeights(List<String> data) {
- int[][] treeHeights = new int[data.size()][data.get(0).length()];
- for (int i = 0; i < treeHeights.length; i++) {
- treeHeights[i] = data.get(i).chars().map(c -> c - '0').toArray();
- }
- return treeHeights;
+ return toIntMatrix(data);
}
private boolean[][] computeTreeVisibility(List<String> data) {
diff --git a/scaffolding/Puzzle.java b/scaffolding/Puzzle.java
index 100704c..f4ca424 100644
--- a/scaffolding/Puzzle.java
+++ b/scaffolding/Puzzle.java
@@ -1,6 +1,8 @@
package edu.unl.cse.bohn;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public abstract class Puzzle {
@@ -25,4 +27,19 @@ public abstract class Puzzle {
System.out.println("Part 1: " + computePart1(data));
System.out.println("Part 2: " + computePart2(data));
}
+
+ protected static List<Integer> toIntegerList(List<String> data) {
+ return data.stream().mapToInt(Integer::valueOf).boxed().toList();
+ }
+
+ protected static char[][] toCharMatrix(List<String> data) {
+ // I suspect this cast won't work
+ return (char[][]) data.stream().map(String::toCharArray).toArray();
+ }
+
+ protected static int[][] toIntMatrix(List<String> data) {
+ int[][] matrix = new int[data.size()][data.get(0).length()];
+ Arrays.setAll(matrix, i -> data.get(i).chars().map(c -> c - '0').toArray());
+ return matrix;
+ }
}
--
GitLab