about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Day4.cs33
1 files changed, 12 insertions, 21 deletions
diff --git a/Day4.cs b/Day4.cs
index 8e57b00..695ccac 100644
--- a/Day4.cs
+++ b/Day4.cs
@@ -22,42 +22,33 @@ namespace aoc2019
 
         private bool IsValid(int i)
         {
-            return Math.Floor(Math.Log10(i) + 1) == 6
-                && i >= start
-                && i <= end
-                && IsIncreasingDigits(i);
-        }
-
-        private bool IsIncreasingDigits(int i)
-        {
-            int prev = 0;
-            bool hasDup = false;
+            int prev = 0; bool hasDup = false;
             foreach (var c in i.ToString())
             {
                 int curr = c - '0';
-                if (curr < prev)
-                    return false;
-                if (curr == prev)
-                    hasDup = true;
+                if (curr < prev) return false;
+                if (curr == prev) hasDup = true;
                 prev = curr;
             }
-            return hasDup;
+            
+            return i >= start && i <= end && hasDup;
         }
 
-        private bool Part2Criterion(int i)
+        public override void Part1()
         {
-            var s = i.ToString();
-            return s.Select(c => s.Count(j => j == c)).Any(c => c == 2);
+            Console.WriteLine(Enumerable.Range(start, end).Count(i => IsValid(i)));
         }
 
-        public override void Part1()
+        private bool HasOnePair(int i)
         {
-            Console.WriteLine(Enumerable.Range(start, end).Count(i => IsValid(i)));
+            var s = i.ToString();
+            return s.Select(c => s.Count(j => j == c)).Any(c => c == 2);
         }
 
         public override void Part2()
         {
-            Console.WriteLine(Enumerable.Range(start,end).Count(i => IsValid(i) && Part2Criterion(i)));
+            Console.WriteLine(Enumerable.Range(start,end).Count(i => IsValid(i) && HasOnePair(i)));
         }
     }
 }
+