| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- namespace Day12;
- public class Arrangement
- {
- private readonly IList<byte> _items;
-
- public Arrangement(string arrangement)
- {
- _items = arrangement.Select(c =>
- {
- switch (c)
- {
- case '.':
- return (byte) 0;
- case '#':
- return (byte) 1;
- default:
- return (byte) 255;
- }
- }).ToList();
- }
- public Checksum CalculateChecksum()
- {
- var values = new List<int>();
- var c = 0;
- foreach (var i in _items)
- {
- if (i == 1)
- {
- c++;
- }
- else if (c > 0)
- {
- values.Add(c);
- c = 0;
- }
- }
- return new Checksum(values.ToArray());
- }
- }
|