Part 1: Given a string of ()
characters controlling a simulated elevator, where (
means ‘go up’ and )
means ‘go down’, what floor do you end up on?
data = sys.stdin.read()
print(data.count('(') - data.count(')'))
Basically, count
the number of up, subtract the number of down. Nothing much more to say for this one.
Part 2: How far do you make it in the instructions before the current floor is negative?
floor = 0
for index, char in enumerate(sys.stdin.read()):
floor += (1 if char == '(' else -1)
if floor < 0:
print(index)
sys.exit(0)
There might be a more elegant way to do this one, but this is clean enough so far as I’m concerned.