Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Advent4_1 {
- int cached = -1;
- public static void main(String[] args) {
- int possiblePassCount = 0;
- for (int i = 128888; i < 640000; i++) {
- if (hasAdjacentNums(i) && increasing(i))
- possiblePassCount++;
- }
- System.out.println("Answer: " + possiblePassCount);
- }
- private static boolean increasing(int i) {
- String s = Integer.toString(i);
- int[] digits = new int[6];
- for (int j = 0; j < 6; j++) {
- digits[j] = s.charAt(j) - '0';
- }
- if (digits[0] <= digits[1] && digits[1] <= digits[2] && digits[2] <= digits[3] && digits[3] <= digits[4]
- && digits[4] <= digits[5])
- return true;
- return false;
- }
- private static boolean hasAdjacentNums(int i) {
- String s = Integer.toString(i);
- int[] digits = new int[6];
- for (int j = 0; j < 6; j++) {
- digits[j] = s.charAt(j) - '0';
- }
- if (partOfLargerGroup(0, digits) == -1)
- if (hasDoubles(digits))
- return true;
- return false;
- }
- private static boolean hasDoubles(int[] digits) {
- return (digits[0] == digits[1] || digits[1] == digits[2] || digits[2] == digits[3] || digits[3] == digits[4]
- || digits[4] == digits[5]);
- return false;
- }
- private static int partOfLargerGroup(int i, int[] digits) {
- if (i > 2)
- return -1;
- if (digits[i] == digits[i + 1] && digits[i + 1] == digits[i + 2])
- return 3;
- if (digits[i] == digits[i + 1] && digits[i + 1] == digits[i + 2] && digits[i + 2] == digits[i + 3])
- return 3;
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement