day 2 part 1
This commit is contained in:
@@ -11,6 +11,8 @@ public class Day00 {
|
||||
|
||||
private static void part1() {
|
||||
try (Scanner scanner = new Scanner(new FileReader("resources/inputs/00/input"))) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
while (scanner.hasNextLine()) {
|
||||
sb.append(scanner.nextLine());
|
||||
sb.append("\n");
|
||||
@@ -24,6 +26,8 @@ public class Day00 {
|
||||
|
||||
private static void part2() {
|
||||
try (Scanner scanner = new Scanner(new FileReader("resources/inputs/00/input"))) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
while (scanner.hasNextLine()) {
|
||||
sb.append(scanner.nextLine());
|
||||
sb.append("\n");
|
||||
|
||||
74
src/Day02.java
Normal file
74
src/Day02.java
Normal file
@@ -0,0 +1,74 @@
|
||||
package src;
|
||||
|
||||
import java.io.FileReader;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Day02 {
|
||||
public static void main(String[] args) {
|
||||
part1();
|
||||
// part2();
|
||||
}
|
||||
|
||||
private static void part1() {
|
||||
try (Scanner scanner = new Scanner(new FileReader("resources/inputs/02/input")).useDelimiter(",")) {
|
||||
long sum = 0L;
|
||||
while (scanner.hasNext()) {
|
||||
String input = scanner.next().trim();
|
||||
String[] range = input.split("-");
|
||||
String start = range[0];
|
||||
long end = Long.parseLong(range[1]);
|
||||
if (isInvalid(start)) {
|
||||
sum += Long.parseLong(start);
|
||||
}
|
||||
start = permute(start);
|
||||
while (Long.parseLong(start) <= end) {
|
||||
sum += Long.parseLong(start);
|
||||
start = permute(start);
|
||||
}
|
||||
}
|
||||
System.out.println(sum);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private static void part2() {
|
||||
try (Scanner scanner = new Scanner(new FileReader("resources/inputs/02/input"))) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
while (scanner.hasNextLine()) {
|
||||
sb.append(scanner.nextLine());
|
||||
sb.append("\n");
|
||||
}
|
||||
String input = sb.toString();
|
||||
System.out.println(input);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isInvalid(String id) {
|
||||
if (id.length() % 2 != 0) {
|
||||
// odd length, can't have a repeated pair
|
||||
return false;
|
||||
}
|
||||
return CharSequence.compare(
|
||||
id.subSequence(0, id.length() / 2),
|
||||
id.subSequence(id.length() / 2, id.length())) == 0;
|
||||
}
|
||||
|
||||
private static String permute(String str) {
|
||||
if (str.length() % 2 != 0) {
|
||||
// in this case, we need to get to a even-length string
|
||||
return String.valueOf((int) Math.pow(10, str.length() / 2))
|
||||
+ String.valueOf((int) Math.pow(10, str.length() / 2));
|
||||
}
|
||||
long head = Long.parseLong(str.subSequence(0, str.length() / 2).toString());
|
||||
long tail = Long.parseLong(str.subSequence(str.length() / 2, str.length()).toString());
|
||||
if (tail < head) {
|
||||
return String.valueOf(head) + String.valueOf(head);
|
||||
}
|
||||
head++;
|
||||
return String.valueOf(head) + String.valueOf(head);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user