Exemplo n.º 1
0
        private static int CalculateFloor(string input)
        {
            int floor = 0;
            int index = 1;

            foreach (Char c in input)
            {
                if (c.ToString() == "(")
                {
                    floor += 1;
                }
                if (c.ToString() == ")")
                {
                    floor -= 1;
                }

                if (floor == -1)
                {
                    Console.Write($"First time in the basement is step: ");

                    CustomConsoleColour.SetAnswerColour();
                    Console.Write(index);
                    Console.ResetColor();

                    Console.WriteLine();
                    break;
                }

                index++;
            }

            return(floor);
        }
Exemplo n.º 2
0
        public static void Execute()
        {
            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day03_full.txt");

            int validTriangles = 0;

            foreach (var input in inputs)
            {
                int[] sides = ParseSides(input);

                var longestSide = sides.Max();

                int numberOfLongestSides = sides.Count(x => x == longestSide);
                if (numberOfLongestSides > 1)
                {
                    validTriangles++;
                }
                else
                {
                    var otherSides = sides.Where(x => x != longestSide);

                    if (otherSides.Sum() > longestSide)
                    {
                        validTriangles++;
                    }
                }
            }

            Console.Write($"Number of valid triangles: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(validTriangles);
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 3
0
        public static void Execute()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day09_full.txt");
            Dictionary <string, int?> memo = new Dictionary <string, int?>();

            long decompressedSize = 0;

            foreach (var input in inputs)
            {
                decompressedSize += Decompress(input, memo);
            }

            stopwatch.Stop();

            Console.Write($"\rThe decompressed of the file is ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(decompressedSize);
            Console.ResetColor();
            Console.Write($" chars");
            Console.WriteLine($"calculated in {stopwatch.Elapsed.TotalSeconds}");
            Console.WriteLine();
        }
Exemplo n.º 4
0
        public static void Execute()
        {
            var input = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day14_full.txt");

            ParseReindeer(input);

            for (int i = 1; i <= 2503; i++)
            {
                foreach (var deer in _reindeer)
                {
                    MoveDeer(deer, i);
                }
            }

            foreach (var deer in _reindeer)
            {
                if (deer.DistanceTravelled == _reindeer.Max(x => x.DistanceTravelled))
                {
                    Console.Write($"{deer.Name} has travelled ");

                    CustomConsoleColour.SetAnswerColour();
                    Console.Write(deer.DistanceTravelled);
                    Console.ResetColor();
                    Console.Write($"km");
                    Console.WriteLine();
                }
            }
        }
Exemplo n.º 5
0
        private static void ShiftInput(string jumble, int value)
        {
            string alphabet = "abcdefghijklmnopqrstuvwxyz";
            string answer   = string.Empty;

            foreach (Char c in jumble)
            {
                string newChar = "";
                if (!Char.IsLetter(c))
                {
                    newChar = " ";
                }
                else
                {
                    var index = alphabet.IndexOf(c.ToString());
                    newChar = alphabet[(index + value) % 26].ToString();
                }

                answer = $"{answer}{newChar}";
            }

            if (answer.Contains("north"))
            {
                Console.Write($"{answer} [");
                CustomConsoleColour.SetAnswerColour();
                Console.Write(value);
                Console.ResetColor();
                Console.Write($"]");
                Console.WriteLine();
            }
        }
Exemplo n.º 6
0
        public static void Execute()
        {
            var input = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day15_full.txt");

            ParseIngredients(input);

            int[] combination = new int[_numberOfIngredients];

            while (combination[0] != 100)
            {
                StepCombination(ref combination);

                if (combination.Sum() == 100)
                {
                    //PrintCombination(combination);
                    CalculateScores(combination);
                }
            }

            var maxScore = _scores.Max(x => x.TotalScore);

            Console.Write($"Best combination is: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(_scores.Max(x => x.TotalScore));
            Console.ResetColor();
            Console.WriteLine();

            //var ingredients = _scores.First(x => x.TotalScore == maxScore).Ingredients;
            //foreach (var ingredient in ingredients)
            //{
            //    Console.WriteLine($"    - {ingredient.Name} = {ingredient.Number} tsp");
            //}
        }
Exemplo n.º 7
0
        public static void Execute()
        {
            int input       = 36000000;
            int house       = 2;
            int tooBigHouse = 0;
            int presents    = 0;

            while (presents < input)
            {
                presents = 0;

                for (int elf = 1; elf <= house / 2; elf++)
                {
                    if (house % elf == 0)
                    {
                        presents += elf * 10;
                    }
                }

                presents += house * 10;

                tooBigHouse = house;

                house += 2;
            }

            Console.Write($"Lowest possible house is: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(tooBigHouse);
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 8
0
        private static void CalculateArrangements(List <string[]> permutations)
        {
            var arrangements = new List <Arrangement>();

            foreach (var permutation in permutations)
            {
                var arrangement = new Arrangement();

                foreach (var guest in permutation)
                {
                    arrangement.Guests.Add(guest);
                }

                for (int i = 0; i < _totalGuests; i++)
                {
                    var guest           = permutation[i];
                    var toLeft          = permutation[i - 1 < 0 ? _totalGuests - 1 : i - 1];
                    var toLeftHappiness = _guests.First(x => x.Name == guest && x.NextTo == toLeft).Happiness;
                    arrangement.TotalHappiness += toLeftHappiness;

                    var toRight          = permutation[i + 1 > _totalGuests - 1 ? 0 : i + 1];
                    var toRightHappiness = _guests.First(x => x.Name == guest && x.NextTo == toRight).Happiness;
                    arrangement.TotalHappiness += toRightHappiness;
                }

                arrangements.Add(arrangement);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine($"{arrangements.Max(x => x.TotalHappiness)}");
            Console.ResetColor();
        }
Exemplo n.º 9
0
        public static void Execute()
        {
            string[,] screen = new string[_columnSize, _rowSize];

            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day08_full.txt");

            for (int y = 0; y < _columnSize; y++)
            {
                for (int x = 0; x < _rowSize; x++)
                {
                    screen[y, x] = ".";
                }
            }

            foreach (var instruction in inputs)
            {
                ActionInstruction(instruction, ref screen);
            }

            Console.Write("Number of pixels lit: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(CountOnPixels(screen));
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 10
0
        public static void Execute()
        {
            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day07_full.txt");

            int total = 0;

            foreach (var input in inputs)
            {
                bool isValid = false;
                bool hyperTextIsPalindrome = false;
                var  hypernetMatches       = Regex.Matches(input, @"\[(\w+)\]");

                foreach (Match match in hypernetMatches)
                {
                    if (ContainsABBAPalindrome(match.Groups[1].Value))
                    {
                        hyperTextIsPalindrome = true;
                        break;
                    }
                }

                if (hyperTextIsPalindrome)
                {
                    continue;
                }

                var matches = Regex.Matches(input, @"(\w*)\[");

                foreach (Match match in matches)
                {
                    var group = match.Groups[1].Value;

                    if (ContainsABBAPalindrome(group))
                    {
                        total++;
                        isValid = true;
                        break;
                    }
                }

                if (!isValid)
                {
                    matches = Regex.Matches(input, @"\](\w*)");
                    foreach (Match match in matches)
                    {
                        var group = match.Groups[1].Value;

                        if (ContainsABBAPalindrome(group))
                        {
                            total++;
                            break;
                        }
                    }
                }
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(total);
            Console.ResetColor();
        }
Exemplo n.º 11
0
        public static void Execute()
        {
            int[,] keypad = new int[3, 3] {
                { 1, 4, 7 }, { 2, 5, 8 }, { 3, 6, 9 }
            };
            int x = 1;
            int y = 1;

            var    inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day02_full.txt");
            string answer = string.Empty;

            foreach (var input in inputs)
            {
                foreach (Char instruction in input)
                {
                    switch (instruction.ToString())
                    {
                    case Direction.Up:
                        if (y > 0)
                        {
                            y -= 1;
                        }
                        break;

                    case Direction.Right:
                        if (x < 2)
                        {
                            x += 1;
                        }
                        break;

                    case Direction.Down:
                        if (y < 2)
                        {
                            y += 1;
                        }
                        break;

                    case Direction.Left:
                        if (x > 0)
                        {
                            x -= 1;
                        }
                        break;

                    default:
                        throw new ArgumentException();
                    }
                }

                answer = $"{answer}{keypad[x, y]}";
            }

            Console.Write("Code is: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(answer);
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 12
0
        private static void FindTheAunt()
        {
            List <Aunt> possibleAunts = new List <Aunt>();

            foreach (Aunt aunt in _aunts)
            {
                if (aunt.Children != -1 && aunt.Children != _idealAunt.Children)
                {
                    continue;
                }
                if (aunt.Cats != -1 && aunt.Cats <= _idealAunt.Cats)
                {
                    continue;
                }
                if (aunt.Samoyeds != -1 && aunt.Samoyeds != _idealAunt.Samoyeds)
                {
                    continue;
                }
                if (aunt.Pomeranians != -1 && aunt.Pomeranians >= _idealAunt.Pomeranians)
                {
                    continue;
                }
                if (aunt.Akitas != -1 && aunt.Akitas != _idealAunt.Akitas)
                {
                    continue;
                }
                if (aunt.Vizslas != -1 && aunt.Vizslas != _idealAunt.Vizslas)
                {
                    continue;
                }
                if (aunt.Goldfish != -1 && aunt.Goldfish >= _idealAunt.Goldfish)
                {
                    continue;
                }
                if (aunt.Trees != -1 && aunt.Trees <= _idealAunt.Trees)
                {
                    continue;
                }
                if (aunt.Cars != -1 && aunt.Cars != _idealAunt.Cars)
                {
                    continue;
                }
                if (aunt.Perfumes != -1 && aunt.Perfumes != _idealAunt.Perfumes)
                {
                    continue;
                }

                possibleAunts.Add(aunt);
            }

            Console.Write("Aunt Sue #");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(possibleAunts.Single().Number);
            Console.ResetColor();
            Console.Write(" sent that parcel");
            Console.WriteLine();
        }
Exemplo n.º 13
0
        public static void Execute()
        {
            var input = string.Join(" ", File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day12_full.txt"));

            dynamic o = JsonConvert.DeserializeObject(input);

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(GetSum(o, "red"));
            Console.ResetColor();
        }
Exemplo n.º 14
0
        public static void Execute()
        {
            var words = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day05_full.txt");

            foreach (var word in words)
            {
                IsWordNaughtyOrNice(word);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(_nice);
            Console.ResetColor();
        }
Exemplo n.º 15
0
        public static void Execute()
        {
            var presents = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day02_full.txt");

            foreach (var present in presents)
            {
                _totalSquareFeet += CalculateRibbon(present);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(_totalSquareFeet);
            Console.ResetColor();
        }
Exemplo n.º 16
0
        public static void Execute()
        {
            char[] password = "******".ToCharArray();

            while (!PasswordIsValid(ref password))
            {
                IncrementPassword(ref password);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(password);
            Console.ResetColor();
        }
Exemplo n.º 17
0
        public static void Execute()
        {
            string input = "1321131112";

            for (int i = 1; i <= 40; i++)
            {
                input = IncrementInput(input);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(input.Length);
            Console.ResetColor();
        }
Exemplo n.º 18
0
        public static void Execute()
        {
            var input = "()(((()))(()()()((((()(((())(()(()((((((()(()(((())))((()(((()))((())(()((()()()()(((())(((((((())))()()(()(()(())(((((()()()((())(((((()()))))()(())(((())(())((((((())())))(()())))()))))()())()())((()()((()()()()(()((((((((()()())((()()(((((()(((())((())(()))()((((()((((((((())()((()())(())((()))())((((()())(((((((((((()()(((((()(()))())(((()(()))())((()(()())())())(()(((())(())())()()(()(()((()))((()))))((((()(((()))))((((()(()(()())())()(((()((((())((((()(((()()(())()()()())((()((((((()((()()))()((()))()(()()((())))(((()(((()))((()((()(()))(((()()(()(()()()))))()()(((()(((())())))))((()(((())()(()(())((()())))((((())))(()(()(()())()((()())))(((()((()(())()()((()((())(()()((())(())()))()))((()(())()))())(((((((()(()()(()(())())))))))(()((((((())((((())((())())(()()))))()(())(()())()())((())(()))))(()))(()((()))()(()((((((()()()()((((((((()(()(())((()()(()()))(())()())()((())))()))()())(((()))(())()(())()))()((()((()(()()())(())()()()((())())))((()()(()()((()(())()()())(((()(()()))))(())))(()(()())()))()()))))))()))))((((((())))())))(()(())())(()())))))(()))()))))))()((()))))()))))(()(()((()())())(()()))))(((())()))())())())(((()(()()))(())()(())(())((((((()()))))((()(()))))))(()))())(((()()(()))()())()()()())))))))))))))(())(()))(()))((()(())(()())(())())(()())(())()()(()())))()()()))(())())()))())())(())((())))))))(())))(())))))()))))((())(()(((()))))(()))()((()(())))(()())(((((()))()())()()))))()))))()))())(()(()()()))()))))))((()))))))))))()((()))((()(())((())()()(()()))()(()))))()()(()))()))(((())))(())()((())(())(()())()())())))))))())))()((())))()))(()))()()))(((((((()))())(()()))(()()(()))()(()((()())()))))))(((()()()())))(())()))()())(()()))()()))))))))(())))()))()()))))))()))()())))()(())(())))))()(())()()(()()))))())((()))))()))))(()(((((()))))))))())))())()(())()()))))(())))())()()())()()())()(()))))()))()))))))))())))((()))()))()))())))()())()()())))())))(()((())()((()))())))))())()(())((())))))))))))())()())(())())())(()))(()))()))())(()(())())()())()()(()))))(()(())))))))(())))())(())))))))())()()(())())())))(())))))()))()(()())()(()))())())))))()()(()))()))))())))))))))()))))()))))))())()())()()))))()())))())))))))))))()()))))()()(((()))()()(())()))))((()))))(()))(())())))(())()))))))(()))()))))(())())))))()))(()())))))))))))))())))))))))()((()())(()())))))))((()))))(())(())))()(()())())))())())(()()()())))()))))))())))))())()()())))))))))))()()(()))))()())()))((()())(()))))()(()))))))))))()())())(((())(()))))())()))()))()))))))()))))))(()))))()))))()(())))(())))(()))())()()(()()))()))(()()))))))))()))(()))())(()()(()(()())()()))()))))))))(())))))((()()(()))())())))))()))())(()())()()))())))()(()()()()))((())())))())()(()()))()))))))))(()))(())))()))))(()(()())(()))))()())())()))()()))())))))))))))())()))))))()))))))))())))))()))))())(()())))(())()))())())))))()()(()()())(()())))()()))(((()))(()()()))))()))))()))))((())))()((((((()()))))))())))))))))))(((()))))))))))))(())())))))())(()))))))(()))((()))())))()(()((()))()))()))))))))))())()))()(()()))))())))())(())()(()))()))())(()))()))))(()()))()()(())))))()))(())(()(()()))(()()())))))(((()))))))()))))))))))))(())(()))))()())())()()((()()))())))))(()))))())))))))()()()))))))))())))()(((()()))(())))))(((())())))))((()))()(()))(()))))(()())))(()))())))))()))))(())(())))()((()))(())())))()()))()))))))))()))(()()()(()()()(()))())(())()())(((()))(())))))))))(((()())))()()))))))))()(())(()))()((((())(())(()())))()))(((())()()()))((()))(()))())())))())))(()))())()())())(()(())())()()()(())))())(())))(())))(())()))()))(()((()))))))))())(()))))))())(()()))()()))()(()(()())))()()(()((()((((((()))(())))()()()))())()))((()()(()))())((()(()(()))(()()))))()())))()))()())))))))()()((()())(())))()))(()))(())(()))())(()(())))()()))))))(((()(((()()))()(()(())())((()()))()))()))()))()(()()()(()))((()())()(())))()()))(((())()()())(())()((()()()()(()(())(()()))()(((((()())))((())))))(()()()))))(((()(())))()))((()((()(())()(()((())))((()())()(()))(((()())()()(()))(())(((()((()())()((())()())(((()()))((()((())(()))(()())(()()()))((()))(())(()((()()())((()))(())))(())(())(())))(()())))(((((()(()(((((()())((((()(()())(())(()()(((())((()(((()()(((()()((((((())))())(()((((((()(()))()))()()((()((()))))()(()()(()((()()))))))(((((()(((((())()()()(())())))))))()))((()()(())))(())(()()()())))))(()((((())))))))()()(((()(()(()(()(()())()()()(((((((((()()())()(()))((()()()()()(((((((()())()((())()))((((((()(()(()(()())(((()(((((((()(((())(((((((((())(())())()))((()(()))(((()()())(())(()(()()(((()(())()))())))(())((((((())(()()())()()(((()(((())(()(((())(((((((()(((((((((()))(())(()(()(()))))((()))()(())())())((()(()((()()))((()()((()(())(())(()((())(((())(((()()()((((((()()(())((((())()))))(())((()(()((())))(((((()(()()())())((())())))((())((()((()()((((((())(((()()(()())())(()(()))(()(()))())())()(((((((()(((()(())()()((())((()(()()((()(()()(((((((((((())((())((((((())((()((((()(()((((()(((((((())()((()))))())()((()((((()(()(((()((()())))(())())(((()(((())((((((()(((((((((()()(())))(()(((((()((((()())))((()((()((()(()()(((())((((((((((((()(((())(()(((((()))(()()(()()()()()()((())(((((((())(((((())))))())()(()()(()(()(((()()(((((())(()((()((()(((()()((()((((())()))()((((())(())))()())(((())(())(()()((()(((()()((((((((((()()(()())())(((((((((())((((()))()()((((())(()((((()(((())())(((((((((((()((((())))(())(()(((()(((()((())(((((()((()()(()(()()((((((()((((()((()(()((()(()((((((()))))()()(((((()((()(()(())()))(())(((((((()((((()())(()((()((()(()))())))(())((()))))(((((((()()()())(()))(()()((()())()((()((()()()(()(()()))(()())(())(((((()(((((((((((()((()(((()(((((((()()((((((()(((((()(()((()(((((())((((((()))((((())((()()((())(((())()(((((()()(((((()((()(()(((((((()(((((()((()((()((())(())((())(()))()()))(()()(()(()()(((((((()(((()(((())()(((((()((((((()())((((())()((()((()(()()())(()))((((()()((((((()((()(()(()((((()((()((())((((((()(()(())((((((()((((((((((()((())()))()(()(()(((((()()()))((())))()(()((((((((((((((()(((()((((()((())((()((()(((()()(()(((()((())(()()())))()(()(()(((((()()(()(()((((()(((((())()(()(()))(((((()()(((()()(())((((((((((((((())((())(((((((((((())()()()(())()(()(()(((((((((())(((()))(()()())(()((((()(())(((((()())(())((((((((())()((((()((((((())(()((()(())(((()((((()))(((((((((()()))((((()(())()()()(())(()((())((()()))()(((())(((((())((((((()()))(((((((((()((((((())))(((((((()((()(()(())))())(()(()))()(((((()())(()))()(()(())(((()))))())()())))(((((()))())()((()(()))))((()()()((((((()))()()((((((((())((()(()(((()(()((())((()())(()((((())(()(((()()()(()(()()))())())((((((((((())())((()))()((())(())(())))())()(()()(())))())(()))(((()(()()(((()(((())))()(((()(())()((((((())()))()))()((((((()(()(((((()())))()))))())()()(((()(((((())((()()(()((()((()(()(()(())))(()()()()((()(())(((()((()))((((()))())(())))())(()))()()()())()))(((()()())()((())))(())(()()()()(()())((()(()()((((())))((()((()(())((()(()((())()(()()(((()())()()())((()))((())(((()()(())))()()))(((()((())()(((((()())(())((())()())())((((((()(()(((((()))(()(";

            int floor = CalculateFloor(input);

            Console.Write($"Floor: ");

            CustomConsoleColour.SetAnswerColour();
            Console.Write(floor);
            Console.ResetColor();

            Console.WriteLine();
        }
Exemplo n.º 19
0
        public static void Execute()
        {
            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day04_full.txt");

            int total = 0;

            foreach (var input in inputs)
            {
                total += ParseInput(input);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine($"{total}");
            Console.ResetColor();
        }
Exemplo n.º 20
0
        public static void Execute()
        {
            var             computer  = new D_23_Computer();
            List <Register> registers = new List <Register>();

            registers = computer.Execute(registers);

            var register = registers.First(x => x.Name == "b");

            Console.Write($"Register {register.Name} has value ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(register.Value);
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 21
0
        public static void Execute()
        {
            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day17_full.txt");

            List <int> containers = ParseContainers(inputs);

            int[] array = new int[_toStore + 1];
            Dictionary <string, int> mem = new Dictionary <string, int>();

            var result = CountSets(containers.OrderByDescending(x => x).ToArray(), 150, containers.Count - 1, mem);

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(result);
            Console.ResetColor();
        }
Exemplo n.º 22
0
        public static void Execute()
        {
            string input     = "yzbqklnj";
            int    index     = 0;
            string secretKey = "";

            while (!secretKey.StartsWith("000000"))
            {
                index++;
                secretKey = CalculateMD5Hash($"{input}{index}");
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(index);
            Console.ResetColor();
        }
Exemplo n.º 23
0
        public static void Execute()
        {
            var input = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day09_full.txt");

            ParseInput(input);
            List <string>   places       = CalculateTotalPlaces();
            List <string[]> permutations = GetPermutations(places);

            CalculatePermutationDistances(permutations);

            Console.Write($"The longest distance to travel is: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(_routes.Max(x => x.TotalDistance));
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 24
0
        public static void Execute()
        {
            var input        = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day01_full.txt")[0];
            var instructions = input.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

            List <Coord> coords = new List <Coord>();

            int currentDirection = Direction.North;

            foreach (var instruction in instructions)
            {
                int value = int.Parse(Regex.Match(instruction, @"\d+").Value);

                if (instruction.StartsWith("R"))
                {
                    currentDirection = (currentDirection + 1) % 4;

                    CalculateCoords(currentDirection, value, ref coords);
                }
                else if (instruction.StartsWith("L"))
                {
                    currentDirection = (currentDirection - 1 + 4) % 4;

                    CalculateCoords(currentDirection, value, ref coords);
                }
                else
                {
                    throw new ArgumentException();
                }

                bool anyDuplicates = CheckForDuplicates(coords);

                if (anyDuplicates)
                {
                    break;
                }
            }

            Coord duplicate = GetDuplicate(coords);

            Console.Write($"Total distance away is: ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(Math.Abs(duplicate.X) + Math.Abs(duplicate.Y));
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 25
0
        public static void Execute()
        {
            var input = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day03_full.txt")[0];

            coords.Add(new Coord {
                X = 0, Y = 0, Presents = 1
            });

            for (int i = 0; i < input.Length; i += 2)
            {
                MoveSanta(input[i]);
                MoveRoboSanta(input[i + 1]);
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(coords.Count());
            Console.ResetColor();
        }
Exemplo n.º 26
0
        public static void Execute()
        {
            var inputs = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2016\Data\day09_full.txt");

            int decompressedSize = 0;

            foreach (var input in inputs)
            {
                decompressedSize += Decompress(input);
            }

            Console.Write($"The decompressed of the file is ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(decompressedSize);
            Console.ResetColor();
            Console.Write($" chars");
            Console.WriteLine();
        }
Exemplo n.º 27
0
        public static void Execute()
        {
            var input = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day08_full.txt");

            for (int i = 0; i < input.Length; i++)
            {
                _charsInString += input[i].Length;

                var memory = input[i];
                memory = Regex.Replace(memory.Trim('"').Replace("\\\"", "a").Replace("\\\\", "b"), "\\\\x[a-f0-9]{2}", "c");

                _charsInMemory += memory.Length;
            }

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(_charsInString - _charsInMemory);
            Console.ResetColor();
        }
Exemplo n.º 28
0
        public static void Execute()
        {
            var    inputs    = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day19_full.txt");
            string inputText = "CRnSiRnCaPTiMgYCaPTiRnFArSiThFArCaSiThSiThPBCaCaSiRnSiRnTiTiMgArPBCaPMgYPTiRnFArFArCaSiRnBPMgArPRnCaPTiRnFArCaSiThCaCaFArPBCaCaPTiTiRnFArCaSiRnSiAlYSiThRnFArArCaSiRnBFArCaCaSiRnSiThCaCaCaFYCaPTiBCaSiThCaSiThPMgArSiRnCaPBFYCaCaFArCaCaCaCaSiThCaSiRnPRnFArPBSiThPRnFArSiRnMgArCaFYFArCaSiRnSiAlArTiTiTiTiTiTiTiRnPMgArPTiTiTiBSiRnSiAlArTiTiRnPMgArCaFYBPBPTiRnSiRnMgArSiThCaFArCaSiThFArPRnFArCaSiRnTiBSiThSiRnSiAlYCaFArPRnFArSiThCaFArCaCaSiThCaCaCaSiRnPRnCaFArFYPMgArCaPBCaPBSiRnFYPBCaFArCaSiAl";

            ParseInput(inputs);

            CalculateMolecules(inputText);

            //foreach (var molecule in _molecules.Distinct())
            //{
            //    Console.WriteLine(molecule);
            //}

            CustomConsoleColour.SetAnswerColour();
            Console.WriteLine(_molecules.Distinct().Count());
            Console.ResetColor();
        }
Exemplo n.º 29
0
        public static void Execute()
        {
            var        inputs  = File.ReadAllLines(@"C:\Work\Misc Projects\AdventOfCode\AdventOfCode\AdventOfCode\2015\Data\day24_full.txt");
            List <int> weights = ParseInputs(inputs);

            var total      = weights.Sum();
            var packweight = total / 3;


            bool any = false;
            int  i   = 1;

            while (!any)
            {
                var permutes = CombinationsRosettaWoRecursion(weights.ToArray(), i);

                any = permutes.Any(x => x.Sum() == packweight);

                if (!any)
                {
                    i++;
                }
            }

            var permutations = CombinationsRosettaWoRecursion(weights.ToArray(), i).Where(x => x.Sum() == packweight);

            List <Pack> packs = new List <Pack>();

            foreach (var permutation in permutations)
            {
                Pack pack = new Pack
                {
                    Group1 = permutation.ToList()
                };

                packs.Add(pack);
            }

            Console.Write($"Best QE = ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(packs.Min(x => x.Group1QE));
            Console.ResetColor();
            Console.WriteLine();
        }
Exemplo n.º 30
0
        public static void Execute()
        {
            List <DiagonalCoord> coords = new List <DiagonalCoord>();
            var x = 1;
            var y = 1;

            while (true)
            {
                long previousValue = 20151125;
                if (coords.Any())
                {
                    previousValue = coords.Last().Presents;
                }

                if (!coords.Any())
                {
                    coords.Add(new DiagonalCoord {
                        X = x, Y = y, Presents = previousValue
                    });
                }
                else
                {
                    coords.Add(new DiagonalCoord {
                        X = x, Y = y, Presents = CalculateValue(previousValue)
                    });
                }

                if (x == 3083 && y == 2978)
                {
                    break;
                }

                IncrementXandY(ref x, ref y, coords);
            }

            //PrintCoords(coords);

            Console.Write($"Value at row 2978, column 3083 = ");
            CustomConsoleColour.SetAnswerColour();
            Console.Write(coords.First(c => c.X == 3083 && c.Y == 2978).Presents);
            Console.ResetColor();
            Console.WriteLine();
        }