def binary(str): return int('0b' + str, 2) def getSeatID(boarding_pass): row = binary(boarding_pass.replace('F', '0').replace('B', '1')[0:7]) column = binary(boarding_pass.replace('L', '0').replace('R', '1')[7:10]) return (row * 8) + column def part1(): file = open("input.txt") IDs = [] for line in file: IDs.append(getSeatID(line)) IDs.sort() highest = max(IDs) print("Part 1: %d" % highest) def part2(): file = open("input.txt") IDs = [] for line in file: IDs.append(getSeatID(line)) IDs.sort() for h in range(1, len(IDs) - 1): val = IDs[h] l = IDs[h - 1] if l + 1 != val: print("Part 2: %d" % (val - 1)) if __name__ == "__main__": part1() part2()