public static void startDay2() { int validPasswordsCount = 0; string filePath = @"C:\Users\Sam\Downloads\input2.txt"; string[] day2Array = Day2.readAllLines(filePath); int fileLength = Day2.getFileLength(filePath); int index = 1; Console.WriteLine("Password ({0}) is ({1}) to ({2}) long and we are looking for the character ({3}) and the password is ({4})", index, Day2.getLineMin(day2Array, index), Day2.getLineMax(day2Array, index), Day2.getLineChar(day2Array, index), Day2.getLinePassword(day2Array, index)); for (int i = 0; i < day2Array.Length; i++) { string password = Day2.getLinePassword(day2Array, i); int minOccurence = Day2.getLineMin(day2Array, i); int maxOccurence = Day2.getLineMax(day2Array, i); char lookupChar = Convert.ToChar(Day2.getLineChar(day2Array, i)); int charFreq = password.Count(f => (f == lookupChar)); if (charFreq >= minOccurence && charFreq <= maxOccurence) { validPasswordsCount++; } } Console.WriteLine(validPasswordsCount); //Console.WriteLine(Day2.getLineMax(day2Array, 1)); }
static void Main(string[] args) { Console.WriteLine("Advent 2020\n"); Day[] Days = new Day[26]; Days[1] = new Day1(); Days[2] = new Day2(); Days[3] = new Day3(); Days[4] = new Day4(); Days[5] = new Day5(); Days[6] = new Day6(); Days[7] = new Day7(); Days[8] = new Day8(); Days[9] = new Day9(); Days[10] = new Day10(); Days[11] = new Day11(); Days[12] = new Day12(); Days[13] = new Day13(); Days[14] = new Day14(); Days[15] = new Day15(); Days[16] = new Day16(); Days[17] = new Day17(); Days[18] = new Day18(); Days[19] = new Day19(); Days[20] = new Day20(); Days[21] = new Day21(); Days[22] = new Day22(); Days[23] = new Day23(); Days[24] = new Day24(); Days[25] = new Day25(); string[] argv = System.Environment.GetCommandLineArgs(); if (argv.Length < 2) { for (int i = 1; i < 26; i++) { if (Days[i] != null) { Days[i].Run().Print(); } } } else { for (int i = 1; i < argv.Length; i++) { int day; if (int.TryParse(argv[i], out day) && day > 0 && day < 26 && Days[day] != null) { Days[day].Run().Print(); } } } }
public static void Part2() { List <KeyValuePair <string, List <KeyValuePair <char, Tuple <int, int> > > > > passwords = ReadFile(); int counter = 0; foreach (var pair in passwords) { var key = pair.Key; List <KeyValuePair <char, Tuple <int, int> > > test = pair.Value; if (Day2.Position(key, test.First().Key, test.First().Value.Item1, test.First().Value.Item2)) { counter++; } } System.Console.WriteLine("Answer: " + counter); }
static void Main(string[] args) { Console.WriteLine("What day's challenge would you like to run?"); string input; do { input = Console.ReadLine(); switch (input) { case "1": var day1 = new Day1(); var day1Results = day1.GetSolution(); Program.PrintSolution(day1Results.solution, day1Results.bonus); break; case "2": var day2 = new Day2(); var day2Results = day2.GetSolution(); Program.PrintSolution(day2Results.solution, day2Results.bonus); break; case "3": var day3 = new Day3(); var day3Results = day3.GetSolution(); Program.PrintSolution(day3Results.solution, day3Results.bonus); break; case "q": Console.WriteLine("Later."); break; default: Console.WriteLine("Invalid input."); break; } }while (input != "q"); }
public static void startDay2Part2() { int validPasswordsCount = 0; string filePath = @"C:\Users\Sam\Downloads\input2.txt"; string[] day2Array = Day2.readAllLines(filePath); for (int i = 0; i < day2Array.Length; i++) { string password = Day2.getLinePassword(day2Array, i); int posOfChar = Day2.getLineMin(day2Array, i); int endPosNotChar = Day2.getLineMax(day2Array, i); char lookupChar = Convert.ToChar(Day2.getLineChar(day2Array, i)); char[] charArray = password.ToCharArray(); int charArrayLength = charArray.Length; char space = (char)32; List <char> tempList = charArray.ToList(); tempList.Add(space); charArray = tempList.ToArray(); if (!(charArray[posOfChar - 1] == lookupChar && charArray[endPosNotChar - 1] == lookupChar)) { if (!(charArray[posOfChar - 1] != lookupChar && charArray[endPosNotChar - 1] != lookupChar)) { if (charArray[posOfChar - 1] == lookupChar && charArray[endPosNotChar - 1] != lookupChar || charArray[posOfChar - 1] != lookupChar && charArray[endPosNotChar - 1] == lookupChar) { validPasswordsCount++; } } } } Console.WriteLine(validPasswordsCount); }