my advent of code solutions
at main 44 lines 1.1 kB view raw
1namespace Solutions._2020; 2 3/// <summary> 4/// Day 9: <a href="https://adventofcode.com/2020/day/9" /> 5/// </summary> 6public sealed class Day09EncodingError() : Day(2020, 9, "Encoding Error") 7{ 8 private long[]? _list; 9 private long _part1; 10 11 public override void ProcessInput() => 12 _list = Input.Select(long.Parse).ToArray(); 13 14 public override object Part1() 15 { 16 for (var i = 25; i < _list!.Length - 25; i++) 17 { 18 var preamble = _list[(i - 25)..i]; 19 if (!preamble.Any(num1 => preamble.Any(num2 => num1 + num2 == _list[i]))) 20 return _part1 = _list[i]; 21 } 22 23 return ""; 24 } 25 26 public override object Part2() 27 { 28 for (var i = 0; i < _list!.Length; i++) 29 { 30 long sum = 0; 31 for (var j = i; j < _list.Length; j++) 32 { 33 sum += _list[j]; 34 if (sum > _part1) break; 35 if (sum != _part1) continue; 36 37 var subset = _list[i..(j + 1)].ToArray(); 38 return subset.Min() + subset.Max(); 39 } 40 } 41 42 return ""; 43 } 44}