diff --git a/py/aoc/y2015/d01.py b/py/aoc/y2015/d01.py index 3aee110..f5bbb44 100644 --- a/py/aoc/y2015/d01.py +++ b/py/aoc/y2015/d01.py @@ -1,29 +1,11 @@ -# PART 1 - - -def count_floors(steps): - return steps.count("(") - steps.count(")") - - -# PART 2 - - -def find_basement_char(steps): - pos = 0 - step_nr = 0 - for step in steps: - step_nr += 1 - if step == "(": - pos += 1 - if step == ")": - pos -= 1 - if pos < 0: - return step_nr - - def solve(inputstr): - steps = inputstr.strip() - floor = count_floors(steps) - print(f"Part 1: {floor}") - step_nr = find_basement_char(steps) - print(f"Part 2: {step_nr}") + steps = [1 if c == "(" else -1 for c in inputstr.strip()] + + print(f"Part 1: {sum(steps)}") + + at = 0 + for i, step in enumerate(steps): + at += step + if at < 0: + break + print(f"Part 2: {i + 1}")