public AdapterArray(string[] adapterStrings)
        {
            AdapterInts = adapterStrings.Select(int.Parse).ToList();
            var wallOutlet = 0;

            WallOutlet = wallOutlet;
            AdapterInts.Add(wallOutlet);
            var deviceJoltage = AdapterInts.Max() + 3;

            DeviceJoltage = deviceJoltage;
            AdapterInts.Add(deviceJoltage);
            AdapterInts = AdapterInts.OrderBy(num => num).ToList();
        }
        public object GetNumberOfArrangements()
        {
            var paths = AdapterInts.ToDictionary(i => i, i => 0L);

            paths[0] = 1;

            foreach (var adapter in AdapterInts.Skip(1))
            {
                for (int i = 1; i < 4; i++)
                {
                    if (paths.ContainsKey(adapter - i))
                    {
                        paths[adapter] += paths[adapter - i];
                    }
                }
            }

            return(paths[AdapterInts[^ 1]]);