From 14d274e5d8e27a3d2f97bcfcf4dfdeeb0783d2b3 Mon Sep 17 00:00:00 2001 From: Stefan Forstenlechner Date: Mon, 6 Dec 2021 20:33:52 +0100 Subject: [PATCH] Day 6 --- Day5.cs | 2 +- Day6.cs | 34 ++++++++++++++++++++++++++++++++++ day6/input | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Day6.cs create mode 100644 day6/input diff --git a/Day5.cs b/Day5.cs index 732c578..80f4317 100644 --- a/Day5.cs +++ b/Day5.cs @@ -1,4 +1,4 @@ -#define Day5 +// #define Day5 #define PartTwo #if Day5 using System.Text.RegularExpressions; diff --git a/Day6.cs b/Day6.cs new file mode 100644 index 0000000..36e3c81 --- /dev/null +++ b/Day6.cs @@ -0,0 +1,34 @@ +#define Day6 +#if Day6 +var fish = File.ReadAllText("day6/input").Split(",") + .Select(long.Parse) + .GroupBy(x => x) + .ToDictionary(x => x.Key, x => x.LongCount()); + +fish[0] = 0; +fish[6] = 0; +fish[7] = 0; +fish[8] = 0; + +Console.WriteLine(CalculateGrowth(80, Copy(fish))); +Console.WriteLine(CalculateGrowth(256, Copy(fish))); + +long CalculateGrowth(int numberOfDays, Dictionary fishState) { + while (numberOfDays > 0) { + long newFish = fishState[0]; + for (int i = 0; i < 8; i++) { + fishState[i] = fishState[i + 1]; + } + fishState[6] += newFish; + fishState[8] = newFish; + + numberOfDays--; + } + return fishState.Values.Sum(); +} + +Dictionary Copy(Dictionary dict) { + return dict.ToDictionary(entry => entry.Key, + entry => entry.Value); +} +#endif \ No newline at end of file diff --git a/day6/input b/day6/input new file mode 100644 index 0000000..ba3c3cc --- /dev/null +++ b/day6/input @@ -0,0 +1 @@ +5,4,3,5,1,1,2,1,2,1,3,2,3,4,5,1,2,4,3,2,5,1,4,2,1,1,2,5,4,4,4,1,5,4,5,2,1,2,5,5,4,1,3,1,4,2,4,2,5,1,3,5,3,2,3,1,1,4,5,2,4,3,1,5,5,1,3,1,3,2,2,4,1,3,4,3,3,4,1,3,4,3,4,5,2,1,1,1,4,5,5,1,1,3,2,4,1,2,2,2,4,1,2,5,5,1,4,5,2,4,2,1,5,4,1,3,4,1,2,3,1,5,1,3,4,5,4,1,4,3,3,3,5,5,1,1,5,1,5,5,1,5,2,1,5,1,2,3,5,5,1,3,3,1,5,3,4,3,4,3,2,5,2,1,2,5,1,1,1,1,5,1,1,4,3,3,5,1,1,1,4,4,1,3,3,5,5,4,3,2,1,2,2,3,4,1,5,4,3,1,1,5,1,4,2,3,2,2,3,4,1,3,4,1,4,3,4,3,1,3,3,1,1,4,1,1,1,4,5,3,1,1,2,5,2,5,1,5,3,3,1,3,5,5,1,5,4,3,1,5,1,1,5,5,1,1,2,5,5,5,1,1,3,2,2,3,4,5,5,2,5,4,2,1,5,1,4,4,5,4,4,1,2,1,1,2,3,5,5,1,3,1,4,2,3,3,1,4,1,1