Guest User

Untitled

a guest
Dec 7th, 2022
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.99 KB | None | 0 0
  1.             var input = File.ReadAllLines("AdventOfCode/2022/07/Test.txt");
  2.  
  3.             var dir = new List<string>();
  4.             var files = new List<(string Dir, string Name, int Size)>();
  5.  
  6.             foreach (var l in input)
  7.             {
  8.                 if (l == "$ cd ..")
  9.                     dir.Remove(dir.Last());
  10.  
  11.                 if (l.StartsWith("$ cd") && l.Split(" ")[2] != "..")
  12.                     dir.Add(l.Split(" ")[2]);
  13.  
  14.                 if (!l.StartsWith("$") && !l.StartsWith("dir"))
  15.                     files.Add((Dir: String.Join("/", dir), Name: l.Split(" ")[1], Size: int.Parse(l.Split(" ")[0])));
  16.             }
  17.  
  18.             var folderSizes = files.Select(f => f.Dir).Distinct()
  19.                 .Select(dir => (Name: dir, Size: files.Where(f => f.Dir.StartsWith(dir)).Sum(f => f.Size)));
  20.  
  21.             var result1 = folderSizes.Where(fs => fs.Size < 100000).Sum(fs => fs.Size);
  22.             var result2 = 0;
  23.  
  24.             Console.WriteLine($"Part 1: {result1}, Part 2: {result2}");
Advertisement
Add Comment
Please, Sign In to add comment