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(')'))
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.