ben
/
aoc
1
0
Fork 0
aoc/AOC2020/Day09.cs

45 lines
1.1 KiB
C#
Raw Normal View History

namespace AOC2020;
/// <summary>
2022-12-03 05:41:38 +00:00
/// Day 9: <a href="https://adventofcode.com/2020/day/9" />
/// </summary>
2023-09-20 18:38:58 +00:00
public sealed class Day09() : Day(2020, 9, "Encoding Error")
{
private long[]? _list;
private long _part1;
2023-12-01 07:30:47 +00:00
public override void ProcessInput() =>
_list = Input.Select(long.Parse).ToArray();
2022-12-04 05:00:02 +00:00
public override object Part1()
{
for (var i = 25; i < _list!.Length - 25; i++)
{
var preamble = _list[(i - 25)..i];
if (!preamble.Any(num1 => preamble.Any(num2 => num1 + num2 == _list[i])))
return _part1 = _list[i];
}
return "";
}
2022-12-04 05:00:02 +00:00
public override object Part2()
{
for (var i = 0; i < _list!.Length; i++)
{
long sum = 0;
for (var j = i; j < _list.Length; j++)
{
sum += _list[j];
if (sum > _part1) break;
if (sum != _part1) continue;
var subset = _list[i..(j + 1)].ToArray();
2022-12-04 05:00:02 +00:00
return subset.Min() + subset.Max();
}
}
return "";
}
}