Exemplo n.º 1
0
        private void SolvePart1()
        {
            var knotHasher = new Day10Solver();
            var bitCount   = Enumerable.Range(0, 128)
                             .Select(i => knotHasher.KnotHash($"{_input}-{i}"))
                             .Select(BitCountFromHex)
                             .Sum();

            Output.Answer(bitCount);
        }
Exemplo n.º 2
0
        internal void SolvePart2()
        {
            var knotHasher = new Day10Solver();
            var bitField   = Enumerable.Range(0, 128)
                             .Select(i => knotHasher.KnotHash($"{_input}-{i}"))
                             .Select(BitArrayFromHex)
                             .ToArray();

            var groupCount = 0;

            for (int i = 0; i < bitField.Length; i++)
            {
                for (var j = 0; j < bitField[0].Length; j++)
                {
                    if (bitField[i][j])
                    {
                        groupCount++;
                        ZeroOutGroup(bitField, i, j);
                    }
                }
            }

            Output.Answer(groupCount);
        }