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
|
#define Day6
|
||||||
#if Day6
|
#if Day6
|
||||||
|
using System.Diagnostics;
|
||||||
var fish = File.ReadAllText("day6/input").Split(",")
|
var fish = File.ReadAllText("day6/input").Split(",")
|
||||||
.Select(long.Parse)
|
.Select(long.Parse)
|
||||||
.GroupBy(x => x)
|
.GroupBy(x => x)
|
||||||
|
|
@ -31,4 +32,17 @@ Dictionary<long, long> Copy(Dictionary<long, long> dict) {
|
||||||
return dict.ToDictionary(entry => entry.Key,
|
return dict.ToDictionary(entry => entry.Key,
|
||||||
entry => entry.Value);
|
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
|
#endif
|
||||||
Loading…
Reference in New Issue