예제 #1
0
        static void Main(string[] args)
        {
            var advent = new Advent2017();

            Console.WriteLine("Advent Day 1:");
            Console.WriteLine("The sum is: {0}", advent.Day1(PuzzleInputs.Day1));

            Console.WriteLine("Advent Day 2:");
            Console.WriteLine("The checksum is: {0}", advent.Day2(PuzzleInputs.Day2));
            Console.WriteLine("The dividend checksum is: {0}", advent.Day2Part2(PuzzleInputs.Day2));

            var start = 325489;

            Console.WriteLine("Advent Day 3:");
            Console.WriteLine("The number of steps are: {0}", advent.Day3(start));
            Console.WriteLine("The first adjacent sum larger than the input is: {0}", advent.Day3Part2(start));

            Console.WriteLine("Advent Day 4:");
            Console.WriteLine("The number of valid passphrases is: {0}", advent.Day4(PuzzleInputs.Day4));
            Console.WriteLine("The number of valid passphrases without anagrams is: {0}", advent.Day4(PuzzleInputs.Day4, true));

            Console.WriteLine("Advent Day 5:");
            Console.WriteLine("The number of steps to exit the maze are: {0}", advent.Day5(PuzzleInputs.Day5));
            Console.WriteLine("the number of steps to exit the strange maze are: {0}", advent.Day5(PuzzleInputs.Day5, true));
        }
예제 #2
0
        public void Day5Part2Test()
        {
            var puzzleInput = new List <int> {
                0, 3, 0, 1, -3
            };

            var advent = new Advent2017();

            Assert.Equal(10, advent.Day5(puzzleInput, true));
        }
예제 #3
0
        public void Day5Test()
        {
            var puzzleInput = new List <int> {
                0, 3, 0, 1, -3
            };

            var advent = new Advent2017();

            Assert.Equal(5, advent.Day5(puzzleInput));
        }
예제 #4
0
        public void Day3AdjacentSumTest()
        {
            var advent = new Advent2017();

            var spiral = new Dictionary <string, int> {
                { "0,0", 1 },
                { "1,0", 1 },
                { "1,1", 2 },
                { "0,1", 4 },
            };

            Assert.Equal(5, advent.getAdjacentSum(new int[] { -1, 1 }, spiral));
        }
예제 #5
0
        public void Day4AnagramTest()
        {
            var advent = new Advent2017();

            Assert.Equal(3, advent.Day4(passphraseAnagrams, true));
        }
예제 #6
0
        public void Day4Test()
        {
            var advent = new Advent2017();

            Assert.Equal(2, advent.Day4(passphrases));
        }
예제 #7
0
        public void Day3SpiralSumTest()
        {
            var advent = new Advent2017();

            Assert.Equal(747, advent.Day3Part2(730));
        }
예제 #8
0
        public void Day3SpiralTest()
        {
            var advent = new Advent2017();

            Assert.Equal(2, advent.Day3(23));
        }
예제 #9
0
        public void Day2DivisibleChecksumTest()
        {
            var advent = new Advent2017();

            Assert.Equal(9, advent.Day2Part2(spreadsheet2));
        }
예제 #10
0
        public void Day2ChecksumTest()
        {
            var advent = new Advent2017();

            Assert.Equal(18, advent.Day2(spreadsheet));
        }