completed day 4
This commit is contained in:
@@ -16,14 +16,27 @@ public class PrintingDepartment : IAdventSolution
|
|||||||
_existingRolls.Add(new Coordinate(j, i));
|
_existingRolls.Add(new Coordinate(j, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var initialCount = _existingRolls.Count;
|
||||||
var accessible = 0;
|
var accessible = -1;
|
||||||
foreach (var c in _existingRolls)
|
var firstAccessible = -1;
|
||||||
|
var toRemove = new HashSet<Coordinate>();
|
||||||
|
while(accessible != 0 && _existingRolls.Count > 0)
|
||||||
{
|
{
|
||||||
if(IsAccessible(c)) accessible++;
|
accessible = 0;
|
||||||
}
|
foreach (var c in _existingRolls)
|
||||||
|
{
|
||||||
return new AdventSolution(accessible.ToString(), null);
|
if (!IsAccessible(c)) continue;
|
||||||
|
accessible++;
|
||||||
|
toRemove.Add(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (firstAccessible == -1) firstAccessible = accessible;
|
||||||
|
|
||||||
|
_existingRolls.RemoveWhere(x => toRemove.Contains(x));
|
||||||
|
toRemove.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new AdventSolution(firstAccessible.ToString(), (initialCount - _existingRolls.Count).ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly Coordinate[] _directions =
|
private readonly Coordinate[] _directions =
|
||||||
|
|||||||
Reference in New Issue
Block a user