Beispiel #1
0
        private static void Part2()
        {
            var delay = 0;

            do
            {
                var firewall = new Firewall(GetLayers());

                foreach (var i in Enumerable.Range(0, delay))
                {
                    firewall.TickLayers();
                }

                while (firewall.Tick())
                {
                    ;
                }

                if (firewall.Caught.Count == 0)
                {
                    Console.WriteLine($"Lowest delay possible is {delay}");
                    return;
                }
                else
                {
                    delay++;
                }
                if (delay % 1000 == 0)
                {
                    Console.WriteLine($"Now at delay of {delay}");
                }
            } while(true);
        }
Beispiel #2
0
        private static void Part1()
        {
            var firewall = new Firewall(GetLayers());

            while (firewall.Tick())
            {
                ;
            }
            Console.WriteLine($"Severity is {firewall.Severity}");
        }
        static void Main(string[] args)
        {
            var      input = System.IO.File.ReadAllText("Inputs/day-13.txt");
            Firewall f     = FirewallFactory.CreateFromString(input);
            Packet   p     = new Packet();

            // Part one
            Console.WriteLine(p.GetTravelCost(f));

            // Part two
            Console.WriteLine(p.GetDelayForNoAlarms(f));
        }
        static void Main(string[] args)
        {
            var input    = System.IO.File.ReadAllLines(@"../input.txt").ToList();
            var firewall = new Firewall(input);

            var totalSeverity = firewall.TotalSeverity(0);

            Console.WriteLine($"Part1: {totalSeverity}");


            var delay = firewall.FindSaveDelay();

            Console.WriteLine($"Part2: {delay}");
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            var fwLayers = File.ReadAllLines(@".\Input.txt")
                           .Select(line => line.Split(':'))
                           .Select(split =>
                                   new Tuple <int, int>(int.Parse(split[0]), int.Parse(split[1]))
                                   ).ToList();

            var firewall = new Firewall(fwLayers);


            int severity = 0;

            for (int packetPos = 0; packetPos <= firewall.MaxDepth; packetPos++)
            {
                if (firewall.Layers[packetPos].CheckIfCaught(packetPos))
                {
                    severity += packetPos * firewall.Layers[packetPos].RangeSize;
                }
            }

            Console.WriteLine($"Day 13 - Assignment 1: Severity is: {severity}");

            severity = 1;
            //Ingen ide att börja på noll då är alltid första upptagen
            int  delay  = 1;
            bool caught = true;

            while (caught)
            {
                caught = firewall.CheckFirewall(delay);
                if (caught)
                {
                    delay++;
                }
            }

            Console.WriteLine($"Day 13 - Assignment 2: Delay is: {delay}");
        }