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); }
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(); }
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(); }
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(); } } }
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(); } }
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"); //} }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
public static void Execute() { char[] password = "******".ToCharArray(); while (!PasswordIsValid(ref password)) { IncrementPassword(ref password); } CustomConsoleColour.SetAnswerColour(); Console.WriteLine(password); Console.ResetColor(); }
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(); }
public static void Execute() { var input = "()(((()))(()()()((((()(((())(()(()((((((()(()(((())))((()(((()))((())(()((()()()()(((())(((((((())))()()(()(()(())(((((()()()((())(((((()()))))()(())(((())(())((((((())())))(()())))()))))()())()())((()()((()()()()(()((((((((()()())((()()(((((()(((())((())(()))()((((()((((((((())()((()())(())((()))())((((()())(((((((((((()()(((((()(()))())(((()(()))())((()(()())())())(()(((())(())())()()(()(()((()))((()))))((((()(((()))))((((()(()(()())())()(((()((((())((((()(((()()(())()()()())((()((((((()((()()))()((()))()(()()((())))(((()(((()))((()((()(()))(((()()(()(()()()))))()()(((()(((())())))))((()(((())()(()(())((()())))((((())))(()(()(()())()((()())))(((()((()(())()()((()((())(()()((())(())()))()))((()(())()))())(((((((()(()()(()(())())))))))(()((((((())((((())((())())(()()))))()(())(()())()())((())(()))))(()))(()((()))()(()((((((()()()()((((((((()(()(())((()()(()()))(())()())()((())))()))()())(((()))(())()(())()))()((()((()(()()())(())()()()((())())))((()()(()()((()(())()()())(((()(()()))))(())))(()(()())()))()()))))))()))))((((((())))())))(()(())())(()())))))(()))()))))))()((()))))()))))(()(()((()())())(()()))))(((())()))())())())(((()(()()))(())()(())(())((((((()()))))((()(()))))))(()))())(((()()(()))()())()()()())))))))))))))(())(()))(()))((()(())(()())(())())(()())(())()()(()())))()()()))(())())()))())())(())((())))))))(())))(())))))()))))((())(()(((()))))(()))()((()(())))(()())(((((()))()())()()))))()))))()))())(()(()()()))()))))))((()))))))))))()((()))((()(())((())()()(()()))()(()))))()()(()))()))(((())))(())()((())(())(()())()())())))))))())))()((())))()))(()))()()))(((((((()))())(()()))(()()(()))()(()((()())()))))))(((()()()())))(())()))()())(()()))()()))))))))(())))()))()()))))))()))()())))()(())(())))))()(())()()(()()))))())((()))))()))))(()(((((()))))))))())))())()(())()()))))(())))())()()())()()())()(()))))()))()))))))))())))((()))()))()))())))()())()()())))())))(()((())()((()))())))))())()(())((())))))))))))())()())(())())())(()))(()))()))())(()(())())()())()()(()))))(()(())))))))(())))())(())))))))())()()(())())())))(())))))()))()(()())()(()))())())))))()()(()))()))))())))))))))()))))()))))))())()())()()))))()())))())))))))))))()()))))()()(((()))()()(())()))))((()))))(()))(())())))(())()))))))(()))()))))(())())))))()))(()())))))))))))))())))))))))()((()())(()())))))))((()))))(())(())))()(()())())))())())(()()()())))()))))))())))))())()()())))))))))))()()(()))))()())()))((()())(()))))()(()))))))))))()())())(((())(()))))())()))()))()))))))()))))))(()))))()))))()(())))(())))(()))())()()(()()))()))(()()))))))))()))(()))())(()()(()(()())()()))()))))))))(())))))((()()(()))())())))))()))())(()())()()))())))()(()()()()))((())())))())()(()()))()))))))))(()))(())))()))))(()(()())(()))))()())())()))()()))())))))))))))())()))))))()))))))))())))))()))))())(()())))(())()))())())))))()()(()()())(()())))()()))(((()))(()()()))))()))))()))))((())))()((((((()()))))))())))))))))))(((()))))))))))))(())())))))())(()))))))(()))((()))())))()(()((()))()))()))))))))))())()))()(()()))))())))())(())()(()))()))())(()))()))))(()()))()()(())))))()))(())(()(()()))(()()())))))(((()))))))()))))))))))))(())(()))))()())())()()((()()))())))))(()))))())))))))()()()))))))))())))()(((()()))(())))))(((())())))))((()))()(()))(()))))(()())))(()))())))))()))))(())(())))()((()))(())())))()()))()))))))))()))(()()()(()()()(()))())(())()())(((()))(())))))))))(((()())))()()))))))))()(())(()))()((((())(())(()())))()))(((())()()()))((()))(()))())())))())))(()))())()())())(()(())())()()()(())))())(())))(())))(())()))()))(()((()))))))))())(()))))))())(()()))()()))()(()(()())))()()(()((()((((((()))(())))()()()))())()))((()()(()))())((()(()(()))(()()))))()())))()))()())))))))()()((()())(())))()))(()))(())(()))())(()(())))()()))))))(((()(((()()))()(()(())())((()()))()))()))()))()(()()()(()))((()())()(())))()()))(((())()()())(())()((()()()()(()(())(()()))()(((((()())))((())))))(()()()))))(((()(())))()))((()((()(())()(()((())))((()())()(()))(((()())()()(()))(())(((()((()())()((())()())(((()()))((()((())(()))(()())(()()()))((()))(())(()((()()())((()))(())))(())(())(())))(()())))(((((()(()(((((()())((((()(()())(())(()()(((())((()(((()()(((()()((((((())))())(()((((((()(()))()))()()((()((()))))()(()()(()((()()))))))(((((()(((((())()()()(())())))))))()))((()()(())))(())(()()()())))))(()((((())))))))()()(((()(()(()(()(()())()()()(((((((((()()())()(()))((()()()()()(((((((()())()((())()))((((((()(()(()(()())(((()(((((((()(((())(((((((((())(())())()))((()(()))(((()()())(())(()(()()(((()(())()))())))(())((((((())(()()())()()(((()(((())(()(((())(((((((()(((((((((()))(())(()(()(()))))((()))()(())())())((()(()((()()))((()()((()(())(())(()((())(((())(((()()()((((((()()(())((((())()))))(())((()(()((())))(((((()(()()())())((())())))((())((()((()()((((((())(((()()(()())())(()(()))(()(()))())())()(((((((()(((()(())()()((())((()(()()((()(()()(((((((((((())((())((((((())((()((((()(()((((()(((((((())()((()))))())()((()((((()(()(((()((()())))(())())(((()(((())((((((()(((((((((()()(())))(()(((((()((((()())))((()((()((()(()()(((())((((((((((((()(((())(()(((((()))(()()(()()()()()()((())(((((((())(((((())))))())()(()()(()(()(((()()(((((())(()((()((()(((()()((()((((())()))()((((())(())))()())(((())(())(()()((()(((()()((((((((((()()(()())())(((((((((())((((()))()()((((())(()((((()(((())())(((((((((((()((((())))(())(()(((()(((()((())(((((()((()()(()(()()((((((()((((()((()(()((()(()((((((()))))()()(((((()((()(()(())()))(())(((((((()((((()())(()((()((()(()))())))(())((()))))(((((((()()()())(()))(()()((()())()((()((()()()(()(()()))(()())(())(((((()(((((((((((()((()(((()(((((((()()((((((()(((((()(()((()(((((())((((((()))((((())((()()((())(((())()(((((()()(((((()((()(()(((((((()(((((()((()((()((())(())((())(()))()()))(()()(()(()()(((((((()(((()(((())()(((((()((((((()())((((())()((()((()(()()())(()))((((()()((((((()((()(()(()((((()((()((())((((((()(()(())((((((()((((((((((()((())()))()(()(()(((((()()()))((())))()(()((((((((((((((()(((()((((()((())((()((()(((()()(()(((()((())(()()())))()(()(()(((((()()(()(()((((()(((((())()(()(()))(((((()()(((()()(())((((((((((((((())((())(((((((((((())()()()(())()(()(()(((((((((())(((()))(()()())(()((((()(())(((((()())(())((((((((())()((((()((((((())(()((()(())(((()((((()))(((((((((()()))((((()(())()()()(())(()((())((()()))()(((())(((((())((((((()()))(((((((((()((((((())))(((((((()((()(()(())))())(()(()))()(((((()())(()))()(()(())(((()))))())()())))(((((()))())()((()(()))))((()()()((((((()))()()((((((((())((()(()(((()(()((())((()())(()((((())(()(((()()()(()(()()))())())((((((((((())())((()))()((())(())(())))())()(()()(())))())(()))(((()(()()(((()(((())))()(((()(())()((((((())()))()))()((((((()(()(((((()())))()))))())()()(((()(((((())((()()(()((()((()(()(()(())))(()()()()((()(())(((()((()))((((()))())(())))())(()))()()()())()))(((()()())()((())))(())(()()()()(()())((()(()()((((())))((()((()(())((()(()((())()(()()(((()())()()())((()))((())(((()()(())))()()))(((()((())()(((((()())(())((())()())())((((((()(()(((((()))(()("; int floor = CalculateFloor(input); Console.Write($"Floor: "); CustomConsoleColour.SetAnswerColour(); Console.Write(floor); Console.ResetColor(); Console.WriteLine(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }