2021-11-11 05:19:35 +00:00
|
|
|
|
namespace aoc2021;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Day 1: <see href="https://adventofcode.com/2021/day/1"/>
|
|
|
|
|
/// </summary>
|
|
|
|
|
public sealed class Day01 : Day
|
|
|
|
|
{
|
2021-12-01 05:42:20 +00:00
|
|
|
|
private readonly List<int> _readings;
|
|
|
|
|
|
|
|
|
|
public Day01() : base(1, "Sonar Sweep")
|
2021-11-11 05:19:35 +00:00
|
|
|
|
{
|
2021-12-01 05:42:20 +00:00
|
|
|
|
_readings = Input.Select(int.Parse).ToList();
|
2021-11-11 05:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2021-12-01 05:42:20 +00:00
|
|
|
|
public override string Part1()
|
|
|
|
|
{
|
|
|
|
|
var c = 0;
|
|
|
|
|
for (var i = 0; i < _readings.Count - 1; i++)
|
|
|
|
|
{
|
|
|
|
|
if (_readings[i + 1] > _readings[i]) c++;
|
|
|
|
|
}
|
|
|
|
|
return $"{c}";
|
|
|
|
|
}
|
2021-11-11 05:19:35 +00:00
|
|
|
|
|
2021-12-01 05:42:20 +00:00
|
|
|
|
public override string Part2()
|
|
|
|
|
{
|
|
|
|
|
var c = 0;
|
|
|
|
|
for (var i = 0; i < _readings.Count - 3; i++)
|
|
|
|
|
{
|
|
|
|
|
var prev = _readings[i] + _readings[i + 1] + _readings[i + 2];
|
|
|
|
|
var curr = _readings[i + 1] + _readings[i + 2] + _readings[i + 3];
|
|
|
|
|
if (curr > prev) c++;
|
|
|
|
|
}
|
|
|
|
|
return $"{c}";
|
|
|
|
|
}
|
2021-11-11 05:19:35 +00:00
|
|
|
|
}
|