36 lines
875 B
C#
36 lines
875 B
C#
// Input is one line so read it in as a string.
|
|
string input = File.ReadAllText(@"input.txt").ToString();
|
|
|
|
// Start on floor 0.
|
|
int currentFloor = 0;
|
|
|
|
// Counters for Part 2.
|
|
int currentChar = 0;
|
|
int part2 = 0;
|
|
|
|
// Loop through each char in the string and go up/down as directed.
|
|
foreach(char direction in input){
|
|
switch(direction){
|
|
case '(':
|
|
currentFloor++;
|
|
break;
|
|
case ')':
|
|
currentFloor--;
|
|
break;
|
|
default:
|
|
throw new InvalidDataException("Input did not match expected format!");
|
|
}
|
|
|
|
// Increment our counter.
|
|
currentChar++;
|
|
|
|
// If we are on -1 and part2 is still 0, update it.
|
|
if(currentFloor == -1 && part2 == 0){
|
|
part2 = currentChar;
|
|
}
|
|
}
|
|
|
|
// Print out the answers.
|
|
Console.WriteLine("Part 1: " + currentFloor);
|
|
Console.WriteLine("Part 2: " + part2);
|