Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. public class Advent4_1 {
  2.  
  3. int cached = -1;
  4.  
  5. public static void main(String[] args) {
  6. int possiblePassCount = 0;
  7. for (int i = 128888; i < 640000; i++) {
  8. if (hasAdjacentNums(i) && increasing(i))
  9. possiblePassCount++;
  10. }
  11. System.out.println("Answer: " + possiblePassCount);
  12. }
  13.  
  14. private static boolean increasing(int i) {
  15. String s = Integer.toString(i);
  16. int[] digits = new int[6];
  17. for (int j = 0; j < 6; j++) {
  18. digits[j] = s.charAt(j) - '0';
  19. }
  20. if (digits[0] <= digits[1] && digits[1] <= digits[2] && digits[2] <= digits[3] && digits[3] <= digits[4]
  21. && digits[4] <= digits[5])
  22. return true;
  23. return false;
  24. }
  25.  
  26. private static boolean hasAdjacentNums(int i) {
  27.  
  28. String s = Integer.toString(i);
  29. int[] digits = new int[6];
  30. for (int j = 0; j < 6; j++) {
  31. digits[j] = s.charAt(j) - '0';
  32. }
  33. if (partOfLargerGroup(0, digits) == -1)
  34. if (hasDoubles(digits))
  35. return true;
  36.  
  37. return false;
  38. }
  39.  
  40. private static boolean hasDoubles(int[] digits) {
  41. return (digits[0] == digits[1] || digits[1] == digits[2] || digits[2] == digits[3] || digits[3] == digits[4]
  42. || digits[4] == digits[5]);
  43. return false;
  44. }
  45.  
  46. private static int partOfLargerGroup(int i, int[] digits) {
  47. if (i > 2)
  48. return -1;
  49. if (digits[i] == digits[i + 1] && digits[i + 1] == digits[i + 2])
  50. return 3;
  51. if (digits[i] == digits[i + 1] && digits[i + 1] == digits[i + 2] && digits[i + 2] == digits[i + 3])
  52. return 3;
  53. return -1;
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement