Пример #1
0
        internal static void Part2()
        {
            var input = Input.Lines(5);

            // Build set of all possible seat numbers
            var allSeats = Enumerable.Range(1, 126)
                           .SelectMany(row => Enumerable.Range(0, 8).Select(col => Day5Calculator.CalcSeatId(row, col)))
                           .ToHashSet();

            // Scanned seats
            var foundSeats = input.Select(Day5Calculator.CalcSeatId).ToHashSet();

            var remaining = allSeats.Except(foundSeats);

            // Find seat that has an ID +1 and -1 of it in the list of scanned seats
            var mine = remaining
                       .First(id => foundSeats.Contains(id - 1) && foundSeats.Contains(id + 1));

            Console.WriteLine(mine);
        }
Пример #2
0
 public void TestCalcSeat()
 {
     Assert.Equal((70, 7), Day5Calculator.CalcSeat("BFFFBBFRRR"));
     Assert.Equal((14, 7), Day5Calculator.CalcSeat("FFFBBBFRRR"));
     Assert.Equal((102, 4), Day5Calculator.CalcSeat("BBFFBBFRLL"));
 }