diff --git a/AOC2022/AOC2022.csproj b/AOC2022/AOC2022.csproj index 40085fb..e08cbb9 100644 --- a/AOC2022/AOC2022.csproj +++ b/AOC2022/AOC2022.csproj @@ -25,5 +25,8 @@ + + + diff --git a/AOC2022/Day01.cs b/AOC2022/Day01.cs index 35eb411..296f6ad 100644 --- a/AOC2022/Day01.cs +++ b/AOC2022/Day01.cs @@ -1,37 +1,24 @@ -namespace AOC2022; +using MoreLinq.Extensions; + +namespace AOC2022; /// /// Day 1: /// public sealed class Day01 : Day { - private readonly List> _elfCalories = new(); + private readonly List> _elfCalories; public Day01() : base(2022, 1, "Calorie Counting") { - var elf = new List(); - - 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()); } \ No newline at end of file