diff --git a/2022/day06/Day06A.class b/2022/day06/Day06A.class new file mode 100644 index 0000000..1a6c1d0 Binary files /dev/null and b/2022/day06/Day06A.class differ diff --git a/2022/day06/Day06A.java b/2022/day06/Day06A.java new file mode 100644 index 0000000..2bcb2cb --- /dev/null +++ b/2022/day06/Day06A.java @@ -0,0 +1,29 @@ +import java.util.Scanner; +import java.nio.file.Paths; +import java.io.IOException; +import java.util.Arrays; + +public class Day06A { + public static void main (String[] args) { + try (Scanner inputFile = new Scanner(Paths.get("input.txt"))) { + char[] signal = inputFile.nextLine().toCharArray(); + for (int i = 0; i + 3 < signal.length; i++) { + if (distinctValues(Arrays.copyOfRange(signal, i, i + 4))) { + System.out.printf("Characters processed: %d%n", i + 4); + System.exit(0); + } + } + } catch (IOException e ) {} + } + + public static boolean distinctValues(char[] arr){ + for (int i = 0; i < arr.length-1; i++) { + for (int j = i + 1; j < arr.length; j++) { + if (arr[i] == arr[j]) { + return false; + } + } + } + return true; + } +} diff --git a/2022/day06/day06_algo.txt b/2022/day06/day06_algo.txt new file mode 100644 index 0000000..055594d --- /dev/null +++ b/2022/day06/day06_algo.txt @@ -0,0 +1,23 @@ +=== Main === +Open file +initialize counter p +Read full string into a char array. BEEG array +Loop - for i = 0, i + 3 < array length, i++ + feed rolling 4-char snapshot into check function index range i to i+3 + if check true (no duplicates) + print p to screen + if check false (has duplicates) + increment p +End Loop + +=== Check function === Reads char array +Outer Loop - for i = 0, i < array length - 1, i++ + Inner Loop - for j = i+1, j < array length, j++ + if array[i] == array[j] + return false + End Inner Loop +End Outer Loop +return true + +For Part B, change i+4 in lines 11 and 12 to i+14 (or size of range needed) + \ No newline at end of file