diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..947f03e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +bin +obj +*.csproj +test.txt +.vscode diff --git a/2015/Day-01/Day01-1.cs b/2015/Day-01/Day01.cs similarity index 100% rename from 2015/Day-01/Day01-1.cs rename to 2015/Day-01/Day01.cs diff --git a/2015/Day-02/Day02.cs b/2015/Day-02/Day02.cs new file mode 100644 index 0000000..1fb32e5 --- /dev/null +++ b/2015/Day-02/Day02.cs @@ -0,0 +1,43 @@ +int totalSqFt = 0; +int totalRibbon = 0; + +// Read the input line by line. +foreach(string line in File.ReadLines(@"input.txt")){ + // Split the values into different vars. + List dimensionStrings = line.Split('x').ToList(); + List dimensions = new List(); + foreach(string number in dimensionStrings){ + dimensions.Add(Int32.Parse(number)); + } + int length = dimensions[0]; + int width = dimensions[1]; + int height = dimensions[2]; + + // Find smallest two dimensions. + dimensions.Remove(dimensions.Max()); + + // Calculate the perimeter and volume. + int perimeter = ((2 * dimensions[0]) + (2 * dimensions[1])); + int volume = (length * width * height); + + totalRibbon += (perimeter + volume); + + // Calculate the area of each side. + List sides = new List(); + sides.Add(length * width); + sides.Add(width * height); + sides.Add(height * length); + + // Find the smallest side to use for slack. + int slack = sides.Min(); + totalSqFt += slack; + + // Add the sides. + foreach(int side in sides){ + totalSqFt += (side * 2); + } +} + +// Print the totals. +Console.WriteLine("Part 1: " + totalSqFt); +Console.WriteLine("Part 2: " + totalRibbon);