Completed 2015 day 2
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
bin
|
||||||
|
obj
|
||||||
|
*.csproj
|
||||||
|
test.txt
|
||||||
|
.vscode
|
43
2015/Day-02/Day02.cs
Normal file
43
2015/Day-02/Day02.cs
Normal file
@@ -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<string> dimensionStrings = line.Split('x').ToList();
|
||||||
|
List<int> dimensions = new List<int>();
|
||||||
|
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<int> sides = new List<int>();
|
||||||
|
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);
|
Reference in New Issue
Block a user