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));
        }
Example #2
0
        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();
                    }
                }
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }