Exemple #1
0
        public void Execute()
        {
            Console.WriteLine("");
            Console.WriteLine("--- Day 16: Ticket Translation            ---");
            Console.WriteLine("---------------------------------------------");
            string[]          input      = File.ReadAllLines(Directory.GetCurrentDirectory() + "\\Files\\Day16-Input.txt");
            List <Limit>      rules      = GetRules(input);
            TicketsValidation validation = CheckNearByTickets(input, rules);

            Console.WriteLine("Ticket scanning error rate: {0}", validation.ErrorRate);
            List <KeyValuePair <string, int> > fields = DetermineFields(validation.ValidTickets, rules);
            double multiplication = CheckTicket(input, rules.Count, fields);

            Console.WriteLine("multiply departure values together: {0}", multiplication);
        }
Exemple #2
0
        private TicketsValidation CheckNearByTickets(string[] input, List <Limit> rules)
        {
            TicketsValidation validation = new TicketsValidation();

            try
            {
                for (int i = (rules.Count + 5); i < input.Length; i++)
                {
                    string[]   currentTicket = input[i].Split(',');
                    List <int> fields        = GeneralFunctions.ToIntList(currentTicket);
                    int        currentError  = isTicketInvalid(fields, rules);
                    if (currentError > 0)
                    {
                        validation.ErrorRate += currentError;
                    }
                    else
                    {
                        validation.ValidTickets.Add(GeneralFunctions.ToIntList(currentTicket));
                    }
                }
            }
            catch (Exception ex) { Debug.WriteLine(ex.Message); }
            return(validation);
        }