input = open("input", 'r') banks = [] for i, line in enumerate(input): banks.append([int(battery) for battery in line.rstrip()]) # Part 1 # joltages = [] # for bank in banks: # greatest_leftmost = max([ # (battery, -i) for i, battery in enumerate(bank[:-1]) # ]) # greatest_to_right = max([ # battery for battery in bank[(-1*greatest_leftmost[1])+1:] # ]) # joltages.append(greatest_leftmost[0]*10+greatest_to_right) # print(joltages) # print(sum(joltages)) # Part 2 - Cleaned Up! def jolt_it(banks, turn_on_count): joltages = [] for bank in banks: joltage = "" left_edge = 0 for n in range(turn_on_count-1,-1,-1): greatest_leftmost = max([ (battery, -i) for i, battery in enumerate(bank[left_edge:len(bank)-n]) ]) joltage += str(greatest_leftmost[0]) left_edge += (-1*greatest_leftmost[1])+1 joltages.append(int(joltage)) return joltages print(sum(jolt_it(banks,2))) print(sum(jolt_it(banks,12)))