| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- namespace Day14;
- public class BoulderMap
- {
- private readonly char[][] _lines;
- public BoulderMap(IList<string> lines)
- {
- _lines = lines.Select(l => l.ToCharArray()).ToArray();
- }
- public int CalculateMaxNorthLoad()
- {
- var load = 0;
- for (var x = 0; x < _lines[0].Length; x++)
- {
- var freeY = 0;
- for (var y = 0; y < _lines.Length; y++)
- {
- switch (_lines[y][x])
- {
- case 'O':
- if (y != freeY)
- {
- _lines[y][x] = _lines[freeY][x];
- _lines[freeY][x] = 'O';
- }
- load += _lines.Length - freeY;
- freeY++;
- break;
- case '#':
- freeY = y + 1;
- break;
- }
- }
- }
- foreach (var l in _lines)
- {
- Console.WriteLine(l);
- }
- return load;
- }
- }
|