ben
/
aoc
1
0
Fork 0

use Morelinq.Split() it's better
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Ben Harris 2022-12-01 12:40:28 -05:00
parent 7fa89fa999
commit 9860b80ac1
2 changed files with 14 additions and 24 deletions

View File

@ -25,5 +25,8 @@
<ItemGroup>
<ProjectReference Include="..\AOC.Common\AOC.Common.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="morelinq" Version="3.3.2" />
</ItemGroup>
</Project>

View File

@ -1,37 +1,24 @@
namespace AOC2022;
using MoreLinq.Extensions;
namespace AOC2022;
/// <summary>
/// Day 1: <see href="https://adventofcode.com/2022/day/1"/>
/// </summary>
public sealed class Day01 : Day
{
private readonly List<List<int>> _elfCalories = new();
private readonly List<List<int>> _elfCalories;
public Day01() : base(2022, 1, "Calorie Counting")
{
var elf = new List<int>();
foreach (var line in Input)
{
if (string.IsNullOrWhiteSpace(line))
{
_elfCalories.Add(elf);
elf = new();
}
else
elf.Add(int.Parse(line));
}
if (elf.Any()) _elfCalories.Add(elf);
_elfCalories = Input
.Split("")
.Select(e => e.Select(int.Parse).ToList())
.OrderByDescending(e => e.Sum())
.ToList();
}
public override object Part1()
{
return _elfCalories.OrderByDescending(e => e.Sum()).First().Sum();
}
public override object Part1() => _elfCalories.First().Sum();
public override object Part2()
{
return _elfCalories.OrderByDescending(e => e.Sum()).Take(3).Sum(e => e.Sum());
}
public override object Part2() => _elfCalories.Take(3).Sum(e => e.Sum());
}