Example #1
0
        public static int GetDay07Part02Answer()
        {
            // --- Part Two ---
            // It's getting pretty expensive to fly these days - not because of ticket prices, but because of the ridiculous number of bags you need to buy!
            // Consider again your shiny gold bag and the rules from the above example:
            //
            // faded blue bags contain 0 other bags.
            // dotted black bags contain 0 other bags.
            // vibrant plum bags contain 11 other bags: 5 faded blue bags and 6 dotted black bags.
            // dark olive bags contain 7 other bags: 3 faded blue bags and 4 dotted black bags.
            //
            // So, a single shiny gold bag must contain 1 dark olive bag(and the 7 bags within it) plus 2 vibrant plum bags(and the 11 bags within each of those): 1 + 1 * 7 + 2 + 2 * 11 = 32 bags!
            //
            // Of course, the actual rules have a small chance of going several levels deeper than this example; be sure to count all of the bags, even if the nesting becomes topologically impractical!
            //
            // Here's another example:
            //
            // shiny gold bags contain 2 dark red bags.
            // dark red bags contain 2 dark orange bags.
            // dark orange bags contain 2 dark yellow bags.
            // dark yellow bags contain 2 dark green bags.
            // dark green bags contain 2 dark blue bags.
            // dark blue bags contain 2 dark violet bags.
            // dark violet bags contain no other bags.
            //
            // In this example, a single shiny gold bag must contain 126 other bags.
            //
            // How many individual bags are required inside your single shiny gold bag?
            // Answer: 30899
            var bagPolicies = GetDay07Input();
            var result      = BagPolicyHelper.GetNumberOfBagsRequiredInsideBag(bagPolicies, "shiny gold");

            return(result);
        }
Example #2
0
        public static int GetDay07Part01Answer()
        {
            // --- Day 7: Handy Haversacks ---
            // You land at the regional airport in time for your next flight.In fact, it looks like you'll even have time to grab some food: all flights are currently delayed due to issues in luggage processing.
            // Due to recent aviation regulations, many rules(your puzzle input) are being enforced about bags and their contents; bags must be color-coded and must contain specific quantities of other color-coded bags.Apparently, nobody responsible for these regulations considered how long they would take to enforce!
            // For example, consider the following rules:
            //
            // light red bags contain 1 bright white bag, 2 muted yellow bags.
            // dark orange bags contain 3 bright white bags, 4 muted yellow bags.
            // bright white bags contain 1 shiny gold bag.
            // muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
            // shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
            // dark olive bags contain 3 faded blue bags, 4 dotted black bags.
            // vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
            // faded blue bags contain no other bags.
            // dotted black bags contain no other bags.
            // These rules specify the required contents for 9 bag types.In this example, every faded blue bag is empty, every vibrant plum bag contains 11 bags(5 faded blue and 6 dotted black), and so on.
            // You have a shiny gold bag.If you wanted to carry it in at least one other bag, how many different bag colors would be valid for the outermost bag ? (In other words: how many colors can, eventually, contain at least one shiny gold bag ?)
            // In the above rules, the following options would be available to you:
            // A bright white bag, which can hold your shiny gold bag directly.
            // A muted yellow bag, which can hold your shiny gold bag directly, plus some other bags.
            // A dark orange bag, which can hold bright white and muted yellow bags, either of which could then hold your shiny gold bag.
            // A light red bag, which can hold bright white and muted yellow bags, either of which could then hold your shiny gold bag.
            // So, in this example, the number of bag colors that can eventually contain at least one shiny gold bag is 4.
            // How many bag colors can eventually contain at least one shiny gold bag ? (The list of rules is quite long; make sure you get all of it.)
            // Answer: 161
            var bagPolicies = GetDay07Input();
            var result      = BagPolicyHelper.GetNumberOfOutermostBagsThatCanContainTargetBag(bagPolicies, "shiny gold");

            return(result);
        }
Example #3
0
        private static IList <BagPolicy> GetDay07Input()
        {
            string filePath = Path.Combine(Directory.GetCurrentDirectory(), "InputData", FILE_NAME);

            if (!File.Exists(filePath))
            {
                throw new Exception($"Cannot locate file {filePath}");
            }

            var inputLines = File.ReadAllLines(filePath);
            var result     = BagPolicyHelper.ParseInputLines(inputLines);

            return(result);
        }