Day 6: Add O(n) implementation
This commit is contained in:
parent
14d274e5d8
commit
b38bcebc93
14
Day6.cs
14
Day6.cs
|
|
@ -1,5 +1,6 @@
|
|||
#define Day6
|
||||
#if Day6
|
||||
using System.Diagnostics;
|
||||
var fish = File.ReadAllText("day6/input").Split(",")
|
||||
.Select(long.Parse)
|
||||
.GroupBy(x => x)
|
||||
|
|
@ -31,4 +32,17 @@ Dictionary<long, long> Copy(Dictionary<long, long> dict) {
|
|||
return dict.ToDictionary(entry => entry.Key,
|
||||
entry => entry.Value);
|
||||
}
|
||||
|
||||
// O(n)
|
||||
long[] fishAsArray = fish.OrderBy(x => x.Key).Select(x => x.Value).ToArray();
|
||||
int i = 0;
|
||||
int days = 256;
|
||||
int spawn = 6;
|
||||
while (days > 0) {
|
||||
int newSpawn = (i + 7) % 9;
|
||||
fishAsArray[newSpawn] += fishAsArray[i];
|
||||
i = (i + 1) % 9;
|
||||
days--;
|
||||
}
|
||||
Console.WriteLine(fishAsArray.Sum());
|
||||
#endif
|
||||
Loading…
Reference in New Issue