my advent of code solutions
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}