Ejemplo n.º 1
0
        public void Reports_AddTo2020_Product(string input, int preamble, long expected)
        {
            XMAS x       = new XMAS(input);
            long invalid = x.FindWeakness(preamble);

            Assert.Equal(expected, invalid);
        }
Ejemplo n.º 2
0
        public override void Puzzle2()
        {
            int preambleSize  = 25;
            int wrongPosition = 0;

            for (int i = preambleSize; i < input.Count(); i++)
            {
                if (!XMAS.CheckIfSumCanBeMade((input[i]), input.GetRange(i - preambleSize, preambleSize)))
                {
                    Console.WriteLine($"{input[i]} Can't be made by combining 2 digits of the preamble");
                    wrongPosition = i;
                    break;
                }
            }

            for (int j = 0; j < input.Count(); j++)
            {
                for (int k = 2; k <= input.Count() - j; k++)
                {
                    if (XMAS.CheckIfSumCanBeMadeInList(input[wrongPosition], input.GetRange(j, k)))
                    {
                        long smallestNumber = input.GetRange(j, k).Min();
                        long biggestNumber  = input.GetRange(j, k).Max();
                        Console.WriteLine($"The sum of {smallestNumber} and {biggestNumber} equals {smallestNumber + biggestNumber}");
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void Example3()
        {
            var xmas = new XMAS(5);

            xmas.AddRange(ExampleNumbers2);
            Assert.AreEqual(new[] { 15, 25, 47, 40 }, xmas.FindContiguousSum(127));
            Assert.AreEqual(62, xmas.FindWeakness(127));
        }
Ejemplo n.º 4
0
        public static void DoDay9()
        {
            string inputstring   = System.IO.File.ReadAllText(@".\Input\DayNineInput.txt");
            XMAS   EncryptedData = new XMAS(inputstring, 25);
            int?   weakness      = EncryptedData.Weakness;
            int?   answer        = EncryptedData.Answer;

            System.Console.WriteLine("Weakness: {0}", weakness);
            System.Console.WriteLine("Answer: {0}", answer);
        }
Ejemplo n.º 5
0
        public override void Puzzle1()
        {
            int preambleSize = 25;

            for (int i = preambleSize; i < input.Count(); i++)
            {
                if (!XMAS.CheckIfSumCanBeMade((input[i]), input.GetRange(i - preambleSize, preambleSize)))
                {
                    Console.WriteLine($"{input[i]} Can't be made by combining 2 digits of the preamble");
                    break;
                }
            }
        }
Ejemplo n.º 6
0
        public static void ExecuteDay(string fileLocation = "PuzzleInput/Day9.txt")
        {
            string allText = File.ReadAllText(fileLocation);

            var x = new XMAS(allText);

            while (x.CurrentValueValid)
            {
                x.currentIndex++;
            }

            Logger.LogMessage(LogLevel.ANSWER, "9A: " + x.CurrentValue);
            Logger.LogMessage(LogLevel.ANSWER, "9B: " + x.FindValueSumInContiguousData(x.CurrentValue));
        }
Ejemplo n.º 7
0
        public void Part1()
        {
            // Arrange
            var input = new string[] { "35", "20", "15", "25", "47", "40", "62", "55", "65", "95", "102", "117", "150",
                                       "182", "127", "219", "299", "277", "309", "576" };

            xmas = new XMAS(input);

            // Act
            var actual = xmas.Hack(5);

            // Assert
            actual.ShouldBe(127);
        }
Ejemplo n.º 8
0
        public void Example2()
        {
            var xmas = new XMAS(5);

            Assert.AreEqual(127, xmas[xmas.AddRange(ExampleNumbers2).First()]);
        }