소스 검색

Day 9 part 2

Lukas Angerer 2 년 전
부모
커밋
16bfc85370
3개의 변경된 파일29개의 추가작업 그리고 0개의 파일을 삭제
  1. 13 0
      Day9/Program.cs
  2. 11 0
      Day9/Pyramid.cs
  3. 5 0
      Day9/Sequence.cs

+ 13 - 0
Day9/Program.cs

@@ -30,4 +30,17 @@ foreach (var s in sequences)
 Console.WriteLine();
 Console.WriteLine($"Total: {sum}");
 
+Console.WriteLine();
+sum = 0;
+foreach (var s in sequences)
+{
+    var pyramid = new Pyramid(s);
+    var prev = pyramid.Retrodict();
+    Console.WriteLine(prev);
+    sum += prev;
+}
+
+Console.WriteLine();
+Console.WriteLine($"Total: {sum}");
+
 return 0;

+ 11 - 0
Day9/Pyramid.cs

@@ -21,6 +21,17 @@ public class Pyramid
 
         return next;
     }
+    
+    public long Retrodict()
+    {
+        var next = 0L;
+        foreach (var sequence in _layers.Reverse().Skip(1))
+        {
+            next = sequence.Prev(next);
+        }
+
+        return next;
+    }
 
     private void Build()
     {

+ 5 - 0
Day9/Sequence.cs

@@ -19,4 +19,9 @@ public record Sequence(long[] Numbers)
     {
         return Numbers.Last() + delta;
     }
+    
+    public long Prev(long delta)
+    {
+        return Numbers.First() - delta;
+    }
 }