Update Day1_1

This commit is contained in:
Laura Hausmann 2022-12-01 15:43:15 +01:00
parent 4f51e3f5e7
commit 957616ac55
Signed by: zotan
GPG key ID: D044E84C5BE01605

View file

@ -1,11 +1,15 @@
var input = File.ReadAllText("inputs/1_1.txt").TrimEnd('\n');
var sInput = input.Split("\n\n");
var elves = sInput.Select(s => new Elf(s.Split("\n").Select(int.Parse).ToList()));
var input = File.ReadAllText("inputs/1_1.txt").TrimEnd('\n').Split("\n\n"); // Read input file, remove trailing newlines, split by double newline
var elves = input.Select(s => new Elf(s.Split("\n").Select(int.Parse))); // Use LINQ magic (select) to transform the collection of strings into a collection of Elves
Console.WriteLine(elves.MaxBy(elf => elf.Total())!.Total());
Console.WriteLine(elves.MaxBy(elf => elf.Total())!.Total()); // Output Elf with highest total number of calories
internal class Elf {
// Elves have a list of calories (technically a list of consumables that each have a calorie value but that distinction doesn't appear to be relevant yet
private readonly List<int> _calories;
// LINQ shenanigans to easily get the sum of these calorie values
public int Total() => _calories.Sum();
public Elf(List<int> calories) => _calories = calories;
// .ToList() because .Select() gives back an IEnumerable and not a List
public Elf(IEnumerable<int> calories) => _calories = calories.ToList();
}